Blame view

site/jpgraph/Examples/dateaxisex1.php 1.43 KB
8ec98c9f   Guillaume   MAJ
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
  <?php // content="text/plain; charset=utf-8"
  require_once ('jpgraph/jpgraph.php');
  require_once ('jpgraph/jpgraph_line.php');
  
  // The callback that converts timestamp to minutes and seconds
  function TimeCallback($aVal) {
      return Date('H:i:s',$aVal);
  }
  
  // Fake some suitable random data
  $now = time();
  $datax = array($now);
  for( $i=0; $i < 360; $i += 10 ) {
      $datax[] = $now + $i;
  }
  $n = count($datax);
  $datay=array();
  for( $i=0; $i < $n; ++$i ) {
      $datay[] = rand(30,150);
  }
  
  // Setup the basic graph
  $graph = new Graph(324,250);
  $graph->SetMargin(40,40,30,70);	
  $graph->title->Set('Date: '.date('Y-m-d',$now));
  $graph->SetAlphaBlending();
  
  // Setup a manual x-scale (We leave the sentinels for the
  // Y-axis at 0 which will then autoscale the Y-axis.)
  // We could also use autoscaling for the x-axis but then it
  // probably will start a little bit earlier than the first value
  // to make the first value an even number as it sees the timestamp
  // as an normal integer value.
  $graph->SetScale("intlin",0,200,$now,$datax[$n-1]);
  
  // Setup the x-axis with a format callback to convert the timestamp
  // to a user readable time
  $graph->xaxis->SetLabelFormatCallback('TimeCallback');
  $graph->xaxis->SetLabelAngle(90);
  
  // Create the line
  $p1 = new LinePlot($datay,$datax);
  $p1->SetColor("blue");
  
  // Set the fill color partly transparent
  $p1->SetFillColor("blue@0.4");
  
  // Add lineplot to the graph
  $graph->Add($p1);
  
  // Output line
  $graph->Stroke();
  ?>