PHP Classes

File: src/Graph/Scatter.php

Recommend this page to a friend!
  Classes of Joseluis Laso   PHP Stats Graphs   src/Graph/Scatter.php   Download  
File: src/Graph/Scatter.php
Role: Class source
Content type: text/plain
Description: Class source
Class: PHP Stats Graphs
Generate SVG charts from sample data
Author: By
Last change:
Date: 7 years ago
Size: 1,599 bytes
 

Contents

Class file image Download
<?php

namespace JLaso\SimpleStats\Graph;

class
Scatter extends BaseGraph
{
    public function
getGraphType()
    {
        return
count($this->sourceEvents) > 1 ? 'MultiScatterGraph' : 'ScatterGraph';
    }

    public function
getSettings($settings = array())
    {
        return
array_merge($settings,
            array(
               
'back_colour' => '#eee', 'stroke_colour' => '#000',
               
'back_stroke_width' => 0, 'back_stroke_colour' => '#eee',
               
'axis_colour' => '#333', 'axis_overlap' => 2,
               
'axis_font' => 'Georgia', 'axis_font_size' => 10,
               
'grid_colour' => '#666', 'label_colour' => '#000',
               
'pad_right' => 20, 'pad_left' => 20,
               
'marker_colour' => array('red', 'blue', 'green', 'orange'),
               
'marker_type' => array('square', 'triangle', 'x', 'cross'),
               
'marker_size' => array(2, 3, 4, 3),
               
'scatter_2d' => true,
               
'best_fit' => 'straight', 'best_fit_dash' => '2,2',
               
'best_fit_colour' => array('red', 'blue', 'green', 'orange'),
            )
        );
    }

    protected function
genValues($data)
    {
       
$values = array();
       
        foreach(
$data as $eventName=>$eventData) {
            if(
count($eventData) > 0) {
               
$first = $eventData[0]['date'];
                foreach (
$eventData as $item) {
                   
$values[$eventName][] = array(intval(($item['date'] - $first) / 86400), $item['count']);
                }
            }
        }
       
        return
$values;
    }


}