<?php
//ข้อมูลที่ผ่านมาทาง query string จะถูกกำหนดเป็นตัวแปรแบบโกลบอลชื่อ $data
header("Content-type: image/png");       //กำหนดเฮดเดอร์
$sumdata array_sum($data);             //หาผลรวมของข้อมูลทั้งหมด
$img ImageCreate(650200);            //สร้างรูปขนาด 650x200
ImageColorAllocate($img255255255); //กำหนดพื้นรูปเป็นสีขาว

//กำหนดสีที่ใช้ในการวาด
$line ImageColorAllocate($img ,000); // ImageColorAllocate($img ,325, 208, 210);
$dataFill ImageColorAllocate($img128200280);
$black ImageColorAllocate($img255,00);

//สร้างเส้นตรงในแนวตั้ง ซึ่งเป็นเส้นที่ขนาบขอบด้านซ้ายของแผนภูมิแท่ง
ImageLine($img502050180$line);

$bartick 20;   //ความหนาของแผนภูมิแท่งแต่ละอัน
$barspace 30;  //ระยะห่างระหว่างแผนภูมิแท่งแต่ละอัน
$barmax 500;   //ความยาวสูงสุดของแผนภูมิแท่ง
$baseX 50;     //จุดเริ่มต้นในแนวนอนของแผนภูมิแท่ง
$baseY 30;     //จุดเริ่มต้นในแนวตั้งของแผนภูมิแท่ง

//วนลูปเพื่อสร้างแผนภูมิแท่งทั้งห้า
for ($i=1$i<=3$i++) {
  
/* สร้างตัวแปรอาร์เรย์เก็บพิกัดของมุมต่างๆของแผนภูมิแท่ง เพื่อนำไปกำหนดให้ฟังก์ชั่น 
     ImagePolygon() */
  
$setBar[$i] = array($baseX$baseY
                  (
$baseX $barmax), $baseY
                  (
$baseX $barmax), ($baseY $bartick), 
                  
$baseX, ($baseY $bartick));
  
//ใช้ฟังก์ชั่น ImagePolygon() เพื่อสร้างแผนภูมิแท่ง
  
ImagePolygon($img$setBar[$i], 4$line);
  
//คำนวณหาเปอร์เซ็นต์ของข้อมูลนั้นๆเมื่อเทียบกับผลรวมของข้อมูลทั้งหมด
  
$percent = (100 $data[$i]) / $sumdata;
  
//วาดแผนภูมิแท่ง โดยใช้ฟังก์ชั่น ImageFilledRectangle()
  
ImageFilledRectangle($img$baseX$baseY$data[$i], ($baseY $bartick), $dataFill);
  
//แสดงข้อความเพื่อบอกค่าและเปอร์เซ็นต์ของแผนภูมิแท่งแต่ละอัน
  
ImageString($img3, ($baseX 10), $baseY 5$i 1$black);
  
ImageString($img3, ($data[$i] + 15), $baseY 5
    
number_format($data[$i])/100 " [" 
    
number_format($percent2) . "%]"$black);

  
$baseY += $barspace;     //ขยับจุดเริ่มต้นในแนวตั้งของแผนภูมิแท่ง
}

ImagePNG($img);
ImageDestroy($img);
?>