รบกวนเซียน php ช่วยเรื่องกราฟด่วนค๊า.....ด๊วนด่วน
//***** source*********************************
include "jpgraph/jpgraph.php"; //jpgraph 1.6
include "jpgraph/jpgraph_bar.php";
$datay = array(10,20,30,40,20,50); //ค่าที่ส่งให้กราฟแสดง
$graph = new Graph(650,400,"auto");
$graph->SetScale("textlin");
$graph->yaxis->scale->SetGrace(20);
$graph->SetShadow();
$graph->img->SetMargin(80,30,50,50);
$bplot = new Barplot($datay);
$bplot->SetFillColor('orange');
$bplot->value->Show();
$graph->Add($bplot);
$graph->title->Set("Show The Assessment Graph"); //ส่วนที่ต้องการให้เป็นไทยค๊า
$graph->xaxis->title->Set("Amount Of Question");//ส่วนที่ต้องการให้เป็นไทยค๊า
$graph->yaxis->title->Set("percent Assessment point");//ส่วนที่ต้องการให้เป็นไทยค๊า
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->Stroke();
//แล้วอยากรู้ว่ามันใช้ร่วมกับหน้า html + คำสั่ง php เช่น echo อย่างไรค๊า
// ขอบคุณมากมากค๊า
Tag : - - - -
Date :
2 ก.พ. 2550 01:18:02
By :
หนูอี๊ดค๊า
View :
2463
Reply :
7
ก็คือว่าเวลาเซฟนี่ก็เซฟไว้ในโฟเดอร์ของเค้าเลยนะจ๊ะหรือถ้าจะเก็บแยกต่างหากก็ต้องเรียก path ให้ถูกต้องสำหรับตัวที่ include เข้ามาใช้อ่ะจ๋า ส่วนในหน้า html + คำสั่ง php ที่ถามมานะคือว่าเวลาจะโชว์กราฟก็ทำลิงค์เชื่อมเพื่อเรียกไฟล์กราฟออกมาแสดงจ๊ะ
Date :
2 ก.พ. 2550 10:06:33
By :
Indy
แบบว่าตัวนี้แสดงออกมาเป็นกราฟแล้วค่า แต่ปัญหามันอยู่ตรงที่ไม่ยอมทำงานร่วมกันคำสั่ง html แล้วก็ php บางคำสั่งในการแสดงผล และที่สำคัญ มันไม่สามารถแสดงเป็นภาษาไทยได้ ค่ะ
รบกวนผู้รู้ช่วยด้วยนะค่ะ
Date :
2 ก.พ. 2550 10:55:44
By :
หนูอี๊ดค๊า
jpgraph_plotband.php
jpgraph_gradient.php
jpgraph_errhandler.inc.php
jpgraph_bar.php
jpgraph.php
jpg-config.inc.php
ต้องก๊อบปี้ไฟล์เหล่านี้ไปไว้ในไดเรคทอรีที่ต้องการด้วยครับ
และแก้ไข
include "jpgraph/jpgraph.php"; //jpgraph 1.6
include "jpgraph/jpgraph_bar.php";
เป็น
include "jpgraph.php"; //jpgraph 1.6
include "jpgraph_bar.php";
ส่วนการเรียกใช้ ตัวอย่างนะครับ สมมติว่าเซฟไฟล์ที่สร้างกราฟชื่อ graph.php
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title></title>
</head>
<body>
<iframe align="top" height="450width="680" src="graph.php" frameborder="0"></iframe>"
</body>
</html>
ในส่วนความกว้างยาวของเฟรมก็กำหนดให้พอดีกับขนาดของกราฟ
เรื่องการแสดงภาษาไทยนั้นผมก็ยังงงอยู่ครับ
Date :
2 ก.พ. 2550 15:37:30
By :
lozomac
ทดลองเพิ่ม font ไทยแล้วคือ angsanaUPC ภาษาอังกฤษแสดงได้ แต่ไทยก็ยังไม่ได้เดิมคับ
Date :
2 ก.พ. 2550 16:41:20
By :
lozomac
ขอบคุณค่ะ ตอนนี้เอาเท่าที่ได้ไปก่อน แต่ถ้าท่านใดรู้ ช่วยอธิบายเพิ่มเติม (อย่างละเอียด) ด้วยนะค่ะ
ขอบคุณคมากมากค่ะ
Date :
3 ก.พ. 2550 00:34:14
By :
หนูอี๊ดค๊า
นี่เลยครับ
เอาไปวางไว้หลัง Chinese font
DEFINE("FF_AngsanaUPC", 40);
DEFINE("FF_BrowalliaUPC", 41);
DEFINE("FF_CordiaUPC", 42);
DEFINE("FF_DilleniaUPC", 43);
DEFINE("FF_EucrosiaUPC", 44);
DEFINE("FF_FreesiaUPC", 45);
DEFINE("FF_IrisUPC", 46);
DEFINE("FF_JasmineUPC", 47);
DEFINE("FF_KodchiangUPC", 48);
DEFINE("FF_LilyUPC", 49);
DEFINE("FF_TAHOMA", 60);
ไปวางใน jpgraph.php แล้วเรียกใช้เอาตามอำเภอใจ ... ภาษาไทยที่ต้องการ
Date :
8 ก.พ. 2550 02:33:14
By :
maicha
ตัวอย่างนี้เป็นการสร้างกราฟแผนภูมิแท่ง ใช้ PHP ในการสร้างครับ
Code (PHP)
<?
header("Content-type: image/png");
// ค่าของข้อมูลที่ต้องการสร้างกราฟ
$data[1]="30";
$data[2]="40";
$data[3]="50";
$data[4]="60";
$data[5]="70";
$data[6]="80";
$data[7]="90";
$data[8]="100";
$img = ImageCreate(500, 310); //สร้างรูปขนาด 250x320
ImageColorAllocate($img, 255, 255, 255); //กำหนดพื้นรูปเป็นสีขาว
//กำหนดสีที่ใช้ในการวาด
$line = ImageColorAllocate($img ,176, 208, 210);
$dataFill = ImageColorAllocate($img, 122, 176, 180);
$black = ImageColorAllocate($img, 87, 32, 324);
//สร้างเส้นตรงในแนวตั้ง ซึ่งเป็นเส้นที่ขนาบขอบด้านซ้ายของแผนภูมิแท่ง
ImageLine($img, 50, 50, 50, 50, $line);
$bartick = 20; //ความหนาของแผนภูมิแท่งแต่ละอัน
$barspace = 30; //ระยะห่างระหว่างแผนภูมิแท่งแต่ละอัน
$barmax = 400; //ความยาวสูงสุดของแผนภูมิแท่ง
$baseX = 50; //จุดเริ่มต้นในแนวนอนของแผนภูมิแท่ง
$baseY = 30; //จุดเริ่มต้นในแนวตั้งของแผนภูมิแท่ง
//วนลูปเพื่อสร้างแผนภูมิแท่ง
for ($i=1; $i<=count($data); $i++) {
//หาจำนวนเความกว้างของกราฟ
$percent[$i]=$data[$i];
$data[$i]=$data[$i]*$barmax /100;
/* สร้างตัวแปรอาร์เรย์เก็บพิกัดของมุมต่างๆของแผนภูมิแท่ง เพื่อนำไปกำหนดให้ฟังก์ชั่น
ImagePolygon() */
$setBar[$i] = array($baseX, $baseY,
($baseX + $barmax), $baseY,
($baseX + $barmax), ($baseY + $bartick),
$baseX, ($baseY + $bartick));
//ใช้ฟังก์ชั่น ImagePolygon() เพื่อสร้างแผนภูมิแท่ง
ImagePolygon($img, $setBar[$i], 4, $line);
//วาดแผนภูมิแท่ง โดยใช้ฟังก์ชั่น ImageFilledRectangle()
ImageFilledRectangle($img, $baseX, $baseY, ($data[$i]+50), ($baseY + $bartick), $dataFill);
//แสดงข้อความเพื่อบอกค่าของแผนภูมิแท่งแต่ละอัน
ImageString($img, 3, ($baseX - 10), $baseY + 5, $i , $black);
ImageString($img, 3, ($data[$i] + 55), $baseY + 5,
number_format($percent[$i]) ."%", $black);
$baseY += $barspace; //ขยับจุดเริ่มต้นในแนวตั้งของแผนภูมิแท่ง
}
ImagePNG($img);
ImageDestroy($img);
?>
Code (Sample1.php)
<html>
<head>
<title>กราฟ</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
</head>
<body>
ตัวอย่างกราฟนะจ๊ะ
<br>
<?php
echo "<img src='Sample2.php'><br><br>\n";
?>
</body>
</html>
Code (Sample2.php)
<?
header("Content-type: image/png");
// ค่าของข้อมูลที่ต้องการสร้างกราฟ
$data[1]="30";
$data[2]="40";
$data[3]="50";
$data[4]="60";
$data[5]="70";
$data[6]="80";
$data[7]="90";
$data[8]="100";
$img = ImageCreate(500, 310); //สร้างรูปขนาด 250x320
ImageColorAllocate($img, 255, 255, 255); //กำหนดพื้นรูปเป็นสีขาว
//กำหนดสีที่ใช้ในการวาด
$line = ImageColorAllocate($img ,176, 208, 210);
$dataFill = ImageColorAllocate($img, 122, 176, 180);
$black = ImageColorAllocate($img, 87, 32, 324);
//สร้างเส้นตรงในแนวตั้ง ซึ่งเป็นเส้นที่ขนาบขอบด้านซ้ายของแผนภูมิแท่ง
ImageLine($img, 50, 50, 50, 50, $line);
$bartick = 20; //ความหนาของแผนภูมิแท่งแต่ละอัน
$barspace = 30; //ระยะห่างระหว่างแผนภูมิแท่งแต่ละอัน
$barmax = 400; //ความยาวสูงสุดของแผนภูมิแท่ง
$baseX = 50; //จุดเริ่มต้นในแนวนอนของแผนภูมิแท่ง
$baseY = 30; //จุดเริ่มต้นในแนวตั้งของแผนภูมิแท่ง
//วนลูปเพื่อสร้างแผนภูมิแท่ง
for ($i=1; $i<=count($data); $i++) {
//หาจำนวนเความกว้างของกราฟ
$percent[$i]=$data[$i];
$data[$i]=$data[$i]*$barmax /100;
/* สร้างตัวแปรอาร์เรย์เก็บพิกัดของมุมต่างๆของแผนภูมิแท่ง เพื่อนำไปกำหนดให้ฟังก์ชั่น
ImagePolygon() */
$setBar[$i] = array($baseX, $baseY,
($baseX + $barmax), $baseY,
($baseX + $barmax), ($baseY + $bartick),
$baseX, ($baseY + $bartick));
//ใช้ฟังก์ชั่น ImagePolygon() เพื่อสร้างแผนภูมิแท่ง
ImagePolygon($img, $setBar[$i], 4, $line);
//วาดแผนภูมิแท่ง โดยใช้ฟังก์ชั่น ImageFilledRectangle()
ImageFilledRectangle($img, $baseX, $baseY, ($data[$i]+50), ($baseY + $bartick), $dataFill);
//แสดงข้อความเพื่อบอกค่าของแผนภูมิแท่งแต่ละอัน
ImageString($img, 3, ($baseX - 10), $baseY + 5, $i , $black);
ImageString($img, 3, ($data[$i] + 55), $baseY + 5,
number_format($percent[$i]) ."%", $black);
$baseY += $barspace; //ขยับจุดเริ่มต้นในแนวตั้งของแผนภูมิแท่ง
}
ImagePNG($img);
ImageDestroy($img);
?>
สำหรับอื่น ๆ สามารถอ่านได้จาก
Ref : PHP Graph & Charts
หรือจะลองใช้งาน
PHP JpGraph
หรือจะลองใช้งาน Excel กับ Charts
Date :
2009-04-25 09:11:04
By :
webmaster
Load balance : Server 01