source: trunk/xgraph/jpgraph/Examples/balloonex2.php @ 42

Last change on this file since 42 was 42, checked in by marrucho, 10 years ago
File size: 2.2 KB
Line 
1<?php // content="text/plain; charset=utf-8"
2require_once ('jpgraph/jpgraph.php');
3require_once ('jpgraph/jpgraph_scatter.php');
4
5// Each ballon is specificed by four values.
6// (X,Y,Size,Color)
7$data = array(
8    array(1,12,10,'orange'),
9    array(3,41,15,'red'),
10    array(4,5,19,'lightblue'),
11    array(5,70,22,'yellow')
12);
13
14
15
16// We need to create X,Y data vectors suitable for the
17// library from the above raw data.
18$n = count($data);
19for( $i=0; $i < $n; ++$i ) {
20   
21    $datax[$i] = $data[$i][0];
22    $datay[$i] = $data[$i][1];
23
24    // Create a faster lookup array so we don't have to search
25    // for the correct values in the callback function
26    $format[strval($datax[$i])][strval($datay[$i])] = array($data[$i][2],$data[$i][3]);
27   
28}
29
30
31// Callback for markers
32// Must return array(width,border_color,fill_color,filename,imgscale)
33// If any of the returned values are '' then the
34// default value for that parameter will be used (possible empty)
35function FCallback($aYVal,$aXVal) {
36    global $format;
37    return array($format[strval($aXVal)][strval($aYVal)][0],'',
38                 $format[strval($aXVal)][strval($aYVal)][1],'','');
39}
40
41// Setup a basic graph
42$graph = new Graph(450,300,'auto');
43$graph->SetScale("intlin");
44$graph->SetMargin(40,40,40,40);         
45$graph->SetMarginColor('wheat');
46
47$graph->title->Set("Example of ballon scatter plot with X,Y callback");
48$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
49$graph->title->SetMargin(10);
50
51// Use a lot of grace to get large scales since the ballon have
52// size and we don't want them to collide with the X-axis
53$graph->yaxis->scale->SetGrace(50,10);
54$graph->xaxis->scale->SetGrace(50,10);
55
56// Make sure X-axis as at the bottom of the graph and not at the default Y=0
57$graph->xaxis->SetPos('min');
58
59// Set X-scale to start at 0
60$graph->xscale->SetAutoMin(0);
61
62// Create the scatter plot
63$sp1 = new ScatterPlot($datay,$datax);
64$sp1->mark->SetType(MARK_FILLEDCIRCLE);
65
66// Uncomment the following two lines to display the values
67$sp1->value->Show();
68$sp1->value->SetFont(FF_FONT1,FS_BOLD);
69
70// Specify the callback
71$sp1->mark->SetCallbackYX("FCallback");
72
73// Add the scatter plot to the graph
74$graph->Add($sp1);
75
76// ... and send to browser
77$graph->Stroke();
78
79?>
80
81
Note: See TracBrowser for help on using the repository browser.