Viewing file: line.php (2.02 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
//ข้อมูลที่ผ่านมาทาง query string จะถูกกำหนดเป็นตัวแปรแบบโกลบอลชื่อ $data
header("Content-type: image/png"); //กำหนดเฮดเดอร์
$sumdata = array_sum($data); //หาผลรวมของข้อมูลทั้งหมด
$img = ImageCreate(650, 200); //สร้างรูปขนาด 650x200
ImageColorAllocate($img, 255, 255, 255); //กำหนดพื้นรูปเป็นสีขาว
//กำหนดสีที่ใช้ในการวาด
$line = ImageColorAllocate($img ,0, 0, 0); // ImageColorAllocate($img ,325, 208, 210);
$dataFill = ImageColorAllocate($img, 128, 200, 280);
$black = ImageColorAllocate($img, 255,0, 0);
//สร้างเส้นตรงในแนวตั้ง ซึ่งเป็นเส้นที่ขนาบขอบด้านซ้ายของแผนภูมิแท่ง
ImageLine($img, 50, 20, 50, 180, $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($img, 3, ($baseX - 10), $baseY + 5, $i + 1, $black);
ImageString($img, 3, ($data[$i] + 15), $baseY + 5,
number_format($data[$i])/100 . " [" .
number_format($percent, 2) . "%]", $black);
$baseY += $barspace; //ขยับจุดเริ่มต้นในแนวตั้งของแผนภูมิแท่ง
}
ImagePNG($img);
ImageDestroy($img);
?>
|