[22] | 1 | <?php
|
---|
| 2 | /************************************************************************/
|
---|
| 3 | /* Eleonline - Raccolta e diffusione dei dati elettorali */
|
---|
| 4 | /* by Luciano Apolito & Roberto Gigli */
|
---|
| 5 | /* http://www.eleonline.it */
|
---|
| 6 | /* info@eleonline.it luciano@aniene.net rgigli@libero.it */
|
---|
| 7 | /************************************************************************/
|
---|
| 8 |
|
---|
| 9 | include ("jpgraph.php");
|
---|
| 10 | include ("jpgraph_bar.php");
|
---|
| 11 | if(file_exists(TTF_DIR))
|
---|
| 12 | define("CURFONT1",FF_DV_SANSSERIF);
|
---|
| 13 | else
|
---|
| 14 | define ("CURFONT1",FF_FONT1);
|
---|
| 15 |
|
---|
| 16 | $dati1=$_GET['dati1'];$dati2=$_GET['dati2'];$i=$_GET['i'];$l=$_GET['l'];$w=$_GET['w'];
|
---|
| 17 | $titolo=$_GET['titolo'];$descr=$_GET['descr'];$cop=$_GET['cop'];
|
---|
| 18 | $logo=$_GET['logo'];
|
---|
| 19 | $datay=unserialize(stripslashes($dati1)); // percentuali
|
---|
| 20 | $datax=unserialize(stripslashes($dati2)); // candidati
|
---|
| 21 |
|
---|
| 22 |
|
---|
| 23 | // $i= numero candidati
|
---|
| 24 | // $larghezza label
|
---|
| 25 | if (!isset($l)) $l=180;
|
---|
| 26 | if (!isset($w)) $w=500;
|
---|
| 27 | if ($l=='') $l=180;
|
---|
| 28 | if ($w=='') $w=500;
|
---|
| 29 |
|
---|
| 30 | // Size of graph
|
---|
| 31 | $width=$w;
|
---|
| 32 | $height=$i*30;
|
---|
| 33 |
|
---|
| 34 | // Set the basic parameters of the graph
|
---|
| 35 | $graph = new Graph($width,$height,'auto');
|
---|
| 36 | $graph->SetScale("textlin");
|
---|
| 37 |
|
---|
| 38 | $top = 50;
|
---|
| 39 | $bottom = 80;
|
---|
| 40 | $left = $l;
|
---|
| 41 | $right = 40;
|
---|
| 42 | $graph->Set90AndMargin($left,$right,$top,$bottom);
|
---|
| 43 | #if(isset($logo)) $graph->SetBackgroundImage("../images/".$logo.".png",BGIMG_COPY);
|
---|
| 44 | #else
|
---|
| 45 | //$graph->SetBackgroundImage("../images/vuoto.jpg",BGIMG_COPY);
|
---|
| 46 | // Nice shadow
|
---|
| 47 | $graph->SetShadow();
|
---|
| 48 | $graph->SetBackgroundGradient('white','yellow',GRAD_HOR,BGRAD_MARGIN);
|
---|
| 49 | // Setup title
|
---|
| 50 | $graph->title->Set("$titolo");
|
---|
| 51 | $graph->title->SetFont(CURFONT1,FS_BOLD,10);
|
---|
| 52 | $graph->subtitle->Set("$descr");
|
---|
| 53 |
|
---|
| 54 | // Setup X-axis
|
---|
| 55 | $graph->xaxis->SetTickLabels($datax);
|
---|
| 56 | $graph->xaxis->SetFont(CURFONT1,FS_BOLD,8);
|
---|
| 57 | $graph->xaxis->SetColor("black","darkred");
|
---|
| 58 | // Some extra margin looks nicer
|
---|
| 59 | $graph->xaxis->SetLabelMargin(5);
|
---|
| 60 |
|
---|
| 61 | // Label align for X-axis
|
---|
| 62 | $graph->xaxis->SetLabelAlign('right','center');
|
---|
| 63 |
|
---|
| 64 | // Add some grace to y-axis so the bars doesn't go
|
---|
| 65 | // all the way to the end of the plot area
|
---|
| 66 | $graph->yaxis->scale->SetGrace(20);
|
---|
| 67 |
|
---|
| 68 | // Setup the Y-axis to be displayed in the bottom of the
|
---|
| 69 | // graph. We also finetune the exact layout of the title,
|
---|
| 70 | // ticks and labels to make them look nice.
|
---|
| 71 | $graph->yaxis->SetPos('max');
|
---|
| 72 |
|
---|
| 73 | // First make the labels look right
|
---|
| 74 | $graph->yaxis->SetLabelAlign('center','top');
|
---|
| 75 | $graph->yaxis->SetLabelFormat('%d');
|
---|
| 76 | $graph->yaxis->SetLabelSide(SIDE_RIGHT);
|
---|
| 77 |
|
---|
| 78 | // The fix the tick marks
|
---|
| 79 | $graph->yaxis->SetTickSide(SIDE_LEFT);
|
---|
| 80 |
|
---|
| 81 | // Finally setup the title
|
---|
| 82 | $graph->yaxis->SetTitleSide(SIDE_RIGHT);
|
---|
| 83 | $graph->yaxis->SetTitleMargin(35);
|
---|
| 84 |
|
---|
| 85 | // To align the title to the right use :
|
---|
| 86 | $graph->yaxis->SetTitle("$cop",'high');
|
---|
| 87 | $graph->yaxis->title->Align('right');
|
---|
| 88 | $graph->yaxis->SetColor("black","darkred");
|
---|
| 89 | // To center the title use :
|
---|
| 90 | //$graph->yaxis->SetTitle('Turnaround 2002','center');
|
---|
| 91 | //$graph->yaxis->title->Align('center');
|
---|
| 92 |
|
---|
| 93 | $graph->yaxis->title->SetFont(CURFONT1,FS_BOLD,12);
|
---|
| 94 | $graph->yaxis->title->SetAngle(0);
|
---|
| 95 |
|
---|
| 96 |
|
---|
| 97 |
|
---|
| 98 | $graph->yaxis->SetFont(CURFONT1,FS_NORMAL); #era FF_FONT2
|
---|
| 99 | // If you want the labels at an angle other than 0 or 90
|
---|
| 100 | // you need to use TTF fonts
|
---|
| 101 | //$graph->yaxis->SetLabelAngle(0);
|
---|
| 102 |
|
---|
| 103 | /*
|
---|
| 104 | // testo
|
---|
| 105 | $txt =new Text("$cop");
|
---|
| 106 | $txt->Pos( 100,$i*29);
|
---|
| 107 | $txt->SetColor( "red");
|
---|
| 108 | $graph->AddText( $txt);
|
---|
| 109 | */
|
---|
| 110 |
|
---|
| 111 |
|
---|
| 112 |
|
---|
| 113 |
|
---|
| 114 |
|
---|
| 115 |
|
---|
| 116 |
|
---|
| 117 |
|
---|
| 118 | // Now create a bar pot
|
---|
| 119 | $bplot = new BarPlot($datay);
|
---|
| 120 | $bplot->SetFillColor("orange");
|
---|
| 121 | $bplot->SetShadow();
|
---|
| 122 |
|
---|
| 123 | //You can change the width of the bars if you like
|
---|
| 124 | $bplot->SetWidth(0.1);
|
---|
| 125 |
|
---|
| 126 | // We want to display the value of each bar at the top
|
---|
| 127 | $bplot->value->Show();
|
---|
| 128 | $bplot->value->SetFont(CURFONT1,FS_BOLD,12);
|
---|
| 129 | $bplot->value->SetAlign('left','center');
|
---|
| 130 | $bplot->value->SetColor("black","darkred");
|
---|
[64] | 131 | $bplot->value->SetFormat("%.2f %%"); # %");
|
---|
[22] | 132 |
|
---|
| 133 | // Add the bar to the graph
|
---|
| 134 | $graph->Add($bplot);
|
---|
| 135 |
|
---|
| 136 |
|
---|
| 137 | $graph->Stroke();
|
---|
| 138 | ?>
|
---|