Blame view

site/jpgraph/Examples/barscalecallbackex1.php 1.84 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
54
55
56
57
58
59
60
61
62
63
64
  <?php // content="text/plain; charset=utf-8"
  require_once ('jpgraph/jpgraph.php');
  require_once ('jpgraph/jpgraph_bar.php');
  
  // Callback function for Y-scale to get 1000 separator on labels
  function separator1000($aVal) {
      return number_format($aVal);
  }
  
  function separator1000_usd($aVal) {
      return '$'.number_format($aVal);
  }
  
  // Some data
  $datay=array(120567,134013,192000,87000);
  
  // Create the graph and setup the basic parameters
  $graph = new Graph(500,300,'auto');
  $graph->clearTheme();
  $graph->img->SetMargin(80,30,30,40);
  $graph->SetScale('textint');
  $graph->SetShadow();
  $graph->SetFrame(false); // No border around the graph
  
  // Add some grace to the top so that the scale doesn't
  // end exactly at the max value.
  // The grace value is the percetage of additional scale
  // value we add. Specifying 50 means that we add 50% of the
  // max value
  $graph->yaxis->scale->SetGrace(50);
  $graph->yaxis->SetLabelFormatCallback('separator1000');
  
  // Setup X-axis labels
  $a = $gDateLocale->GetShortMonth();
  $graph->xaxis->SetTickLabels($a);
  $graph->xaxis->SetFont(FF_FONT2);
  
  // Setup graph title ands fonts
  $graph->title->Set('Example of Y-scale callback formatting');
  $graph->title->SetFont(FF_FONT2,FS_BOLD);
  $graph->xaxis->title->Set('Year 2002');
  $graph->xaxis->title->SetFont(FF_FONT2,FS_BOLD);
  
  // Create a bar pot
  $bplot = new BarPlot($datay);
  $bplot->SetFillColor('orange');
  $bplot->SetWidth(0.5);
  $bplot->SetShadow();
  
  // Setup the values that are displayed on top of each bar
  $bplot->value->Show();
  
  // Must use TTF fonts if we want text at an arbitrary angle
  $bplot->value->SetFont(FF_ARIAL,FS_BOLD);
  $bplot->value->SetAngle(45);
  $bplot->value->SetFormatCallback('separator1000_usd');
  
  // Black color for positive values and darkred for negative values
  $bplot->value->SetColor('black','darkred');
  $graph->Add($bplot);
  
  // Finally stroke the graph
  $graph->Stroke();
  ?>