Blame view

site/jpgraph/src/Examples/prepaccdata_example.php 1.52 KB
d72ac078   Guillaume   Ajout graphe V1.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  <?php // content="text/plain; charset=utf-8"
  require_once ('../jpgraph.php');
  require_once ('../jpgraph_line.php');
  require_once ('../jpgraph_date.php');
  
  //Create some test data
  $xdata = array();
  $ydata = array();
  
  // Timestamps - 2h (=7200s) apart starting 
  $sampling = 7200;
  $n = 50; // data points
  for($i=0; $i < $n; ++$i ) {
      $xdata[$i] = time() + $i * $sampling;
      $ydata[0][$i] = rand(12,15);
      $ydata[1][$i] = rand(100,155);
      $ydata[2][$i] = rand(20,30);
  }
  
  function formatDate(&$aVal) {
      $aVal = date('Y-m-d H:i',$aVal);
  }
  
  // Apply this format to all time values in the data to prepare it to be display
  array_walk($xdata,'formatDate');
  
  // Create the graph. 
  $graph  = new Graph(600, 350);
  $graph->title->Set('Accumulated values with specified X-axis scale');
  $graph->SetScale('textlin');
  
  // Setup margin color
  $graph->SetMarginColor('green@0.95');
  
  // Adjust the margin to make room for the X-labels
  $graph->SetMargin(40,30,40,120);
  
  // Turn the tick marks out from the plot area
  $graph->xaxis->SetTickSide(SIDE_BOTTOM);
  $graph->yaxis->SetTickSide(SIDE_LEFT);
  
  $p0 =new LinePlot($ydata[0]);
  $p0->SetFillColor('sandybrown');
  $p1 =new LinePlot($ydata[1]);
  $p1->SetFillColor('lightblue');
  $p2 =new LinePlot($ydata[2]);
  $p2->SetFillColor('red');
  $ap = new AccLinePlot(array($p0,$p1,$p2));
  
  $graph->xaxis->SetTickLabels($xdata);
  $graph->xaxis->SetTextLabelInterval(4);
  
  // Add the plot to the graph
  $graph->Add($ap);
  
  // Set the angle for the labels to 90 degrees
  $graph->xaxis->SetLabelAngle(90);
  
  // Display the graph
  $graph->Stroke();
  ?>