Note that there are some explanatory texts on larger screens.

plurals
  1. POGD PHP dynamic pie chart generation issue
    primarykey
    data
    text
    <p>I've created a dynamic pie chart with the GD extension using the image filled arc function. I pass to this script, via HTTP GET variables, up to 11 values. the first value, n, is the number of values that follow. n1,n2,n3, etc. are the data itself. These are integer precentages. The goal is to make a chart that will show the percentages in a pie chart in graphical form. </p> <p>When I run this as:</p> <p>piechart.php?n=2&amp;n1=20&amp;n2=80</p> <p>I only get a black box. Any ideas? Any questions please ask - thanks!</p> <pre><code>&lt;?php // var load $size=500; //HTTP GET vars: //N is the number of sections we have //n1 is the percentage for part1 //n2 is the percentage for part2, and so on $num=$_GET["n"]; //want to make a hard limit at 10 different sections $num=min($num,10); $percents; $angles; $angles[0]=0; $percents[0]=NULL; //load percents array. First value is NULL for ($c=1;$c&lt;=$num;$c++) { $percents[$c]=(int)$_GET["n".$c]; $angles[$c]=(int)round((($percents[$c-1]+$percents[$c])/100)*360); } $angles[$num]=360; //create image $half=round($size/2); $image = imagecreatetruecolor($size, $size); // colors $colorR=array(0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x74, 0x33, 0xFF, 0x33, 0x66); $colorG=array(0x00, 0x80, 0x00, 0xA5, 0xFF, 0xFF, 0x99, 0x00, 0x33, 0xFF); $colorB=array(0xFF, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xFF, 0x66, 0x99, 0x33); // shaded colors $darkColorR=array(0x00, 0x00, 0x80, 0x80, 0x80, 0x3A, 0x1A, 0x80, 0x1A, 0x33); $darkColorG=array(0x00, 0x40, 0x00, 0x52, 0x80, 0x80, 0x4C, 0x00, 0x1A, 0x80); $darkColorB=array(0x80, 0x00, 0x00, 0x00, 0x00, 0x6A, 0x80, 0x33, 0x4C, 0x1A); $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF); $black = imagecolorallocate($image, 0x00, 0x00, 0x00); // make the 3D effect $tempDarkColor; for ($i = $half+round(.1*$half); $i &gt; $half; $i--) { for ($j=0;$j&lt;(count($angles)-1)&amp;&amp;$angles[$j]&lt;180;$j++) { if ($darkColorR[$j]==NULL||$darkColorG[$j]==NULL||$darkColorB[$j]==NULL) { //if one of the colors is missing, set the entire color to white $darkColorR[$j]=0x00; $darkColorG[$j]=0x00; $darkColorB[$j]=0x00; } $tempDarkColor[$j]= imagecolorallocate($image, $darkColorR[$j],$darkColorG[$j],$darkColorB[$j]); imagefilledarc($image, $half, $i, $size, $half, $angles[$j], $angles[$j+1] , $tempDarkColor[$j], IMG_ARC_PIE); } } //make the image $imageColor; for ($k=0;$k&lt;(count($angles)-1);$k++) { if ($darkColorR[$k]==NULL||$darkColorG[$k]==NULL||$darkColorB[$k]==NULL) { //if one of the colors is missing, set the entire color to white $colorR[$k]=0x00; $colorG[$k]=0x00; $colorB[$k]=0x00; } $tempColor[$k]= imagecolorallocate($image, $darkColorR[$k],$darkColorG[$k],$darkColorB[$k]); imagefilledarc($image, $half, $half, $size, $half, $angles[$k], $angles[$k+1] , $tempColor[$k], IMG_ARC_PIE); } // flush image header('Content-type: image/png'); imagepng($image); imagedestroy($image); ?&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload