JPgraph กราฟเส้นทำอย่างไรไม่ให้เดือนมิย 67 กค 67 สค 67 กย 67 พล็อตค่าศูนย์ครับ ขอบคุณครับ

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

pieyai
PHP Newbie
PHP Newbie
โพสต์: 5
ลงทะเบียนเมื่อ: 30/09/2024 2:07 pm

JPgraph กราฟเส้นทำอย่างไรไม่ให้เดือนมิย 67 กค 67 สค 67 กย 67 พล็อตค่าศูนย์ครับ ขอบคุณครับ

โพสต์ที่ยังไม่ได้อ่าน โดย pieyai »

สวัสดีครับ
ตามรูปภาพ 1 เดือนมิย 67 กค 67 สค 67 กย 67 คือ เราไม่ต้องการให้กราฟแสดงค่า 0
จะต้องแก้ไขอย่างไรครับ

ตามรูปภาพ 2 ผมได้แก้โดยตอนบันทึกข้อมูล ทำให้เดือนมิย 67 กค 67 สค 67 กย 67 เป็นค่าว่าง(ไม่ใช่ค่าศูนย์)
พอกดบันทึกแล้ว กราฟก็ยังแสดงค่าศูนย์ออกมาครับ

ตามรูปภาพ 3 นอกจากนั้นก็ยังได้ไปเปลี่ยนที่ phpmyAdmin ให้เดือน มิย เป็นค่า null กราหก็ยังก็ยังแสดงค่าเดือนมิยเป็นค่าศูนย์ออกมาครับ
รูปภาพ
รบกวนทุกท่านด้วยนะครับ
ขอบคุณครับ

โค้ด: เลือกทั้งหมด

<?php
include ("jpgraph.php");
include ("jpgraph_line.php");
@$deptname = $_REQUEST["deptname"];
@$menuname = $_REQUEST["menuname"];
@$year = $_REQUEST["year"];
@$unitname = "";
isset($_REQUEST["unitname"]) ? $unitname = $_REQUEST["unitname"] : $unitname = "";
$arrprice = explode(",",$_REQUEST["arrprice"]);
$xdata = array("ต.ค", "พ.ย.", "ธ.ค.", "ม.ค.", "ก.พ.", "มี.ค.","เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย."); 
//$ydata = array($arrprice[0],$arrprice[1],$arrprice[2],$arrprice[3],$arrprice[4],$arrprice[5],$arrprice[6],$arrprice[7],$arrprice[8],$arrprice[9],$arrprice[10],$arrprice[11]);
if(isset($arrprice))
{
	if(!isset($arrprice[0]))  $arrprice[0] = 0.00;
	if(!isset($arrprice[1]))  $arrprice[1] = 0.00;
	if(!isset($arrprice[2]))  $arrprice[2] = 0.00;
	if(!isset($arrprice[3]))  $arrprice[3] = 0.00;
	if(!isset($arrprice[4]))  $arrprice[4] = 0.00;
	if(!isset($arrprice[5]))  $arrprice[5] = 0.00;
	if(!isset($arrprice[6]))  $arrprice[6] = 0.00;
	if(!isset($arrprice[7]))  $arrprice[7] = 0.00;
	if(!isset($arrprice[8]))  $arrprice[8] =  0.00;
	if(!isset($arrprice[9]))  $arrprice[9] = 0.00;
	if(!isset($arrprice[10]))  $arrprice[10] = 0.00;
	if(!isset($arrprice[11]))  $arrprice[11] = 0.00;
}
else
{
	$arrprice[0] = 0.00;
	$arrprice[1] = 0.00;
	$arrprice[2] = 0.00;
	$arrprice[3] = 0.00;
	$arrprice[4] = 0.00;
	$arrprice[5] = 0.00;
	$arrprice[6] = 0.00;
	$arrprice[7] = 0.00;
	//$arrprice[8] = null;
	//$arrprice[9] = 0.00;
	//$arrprice[10] = 0.00;
	//$arrprice[11] = 0.00;
}
$ydata = array($arrprice[0],$arrprice[1],$arrprice[2],$arrprice[3],$arrprice[4],$arrprice[5],$arrprice[6],$arrprice[7],$arrprice[8],$arrprice[9],$arrprice[10],$arrprice[11]);
$graph = new Graph(2300,1102,'auto'); 
$graph->SetScale("textlin");
$graph->SetFrame(false);
// Adjust the margin
$graph->img->SetMargin(500,500,150,150);
//กำหนดสีให้กับระยะห่างของขอบกราฟกับขอบรูปภาพ
$graph->SetBackgroundImage("e0ffef.jpg",BGIMG_FILLFRAME);
$graph->yaxis->title->SetMargin(40); 
$graph->yaxis->scale->SetAutoMin(0);
$graph->SetMarginColor('lightblue');
// Create the linear plot
$lineplot=new LinePlot($ydata);
$lineplot->mark->SetType(MARK_UTRIANGLE);
//$linerplot->mark->Hide();
$lineplot->value->show();
// Add the plot to the graph
//$graph->SetBackgroundColor('blue');
$graph->Add($lineplot);
$graph->title->Set($menuname." ".$deptname." ปีงบประมาณ ".$year);
$graph->title->SetFont(FF_CordiaUPC,FS_BOLD,24);
$graph->title->SetMargin(60);
$graph->xaxis->title->Set("เดือน");
$graph->yaxis->title->SetFont(FF_CordiaUPC,FS_BOLD,18);
$graph->yaxis->title->Set($unitname);
$graph->yaxis->SetTitlemargin(50);
$graph->yaxis->SetFont(FF_CordiaUPC,FS_BOLD,20);
$graph->xaxis->title->SetFont(FF_CordiaUPC,FS_BOLD,18);
$graph->xaxis->SetTickLabels($xdata);
$graph->xaxis->SetFont(FF_CordiaUPC,FS_BOLD,20);
$lineplot->SetColor("blue");
$lineplot->SetWeight(2);
$graph->yaxis->SetLabelFormatCallback('number_format');
$lineplot->value->HideZero();
//$lineplot->value->Show();
function formatMoney($amount) {
    return " ".number_format($amount,2);
}
$lineplot->value->SetFormatCallback('formatMoney');
//$graph->AdjBackgroundImage(0.4,0.7,-1); 
//$graph->SetBackgroundImage("e0ffef.jpg",BGIMG_COPY);
//$graph->SetColor('blue');
// Display the graph
$graph->Stroke();	
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 47391
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: JPgraph กราฟเส้นทำอย่างไรไม่ให้เดือนมิย 67 กค 67 สค 67 กย 67 พล็อตค่าศูนย์ครับ ขอบคุณครับ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ขออัพโหลดภาพประกอบมาดูหน่อยครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
pieyai
PHP Newbie
PHP Newbie
โพสต์: 5
ลงทะเบียนเมื่อ: 30/09/2024 2:07 pm

Re: JPgraph กราฟเส้นทำอย่างไรไม่ให้เดือนมิย 67 กค 67 สค 67 กย 67 พล็อตค่าศูนย์ครับ ขอบคุณครับ

โพสต์ที่ยังไม่ได้อ่าน โดย pieyai »

11.png
11.png (55.85 KiB) Viewed 1938 times
21.png
21.png (67.75 KiB) Viewed 1938 times
31.png
31.png (109.65 KiB) Viewed 1938 times
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 47391
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: JPgraph กราฟเส้นทำอย่างไรไม่ให้เดือนมิย 67 กค 67 สค 67 กย 67 พล็อตค่าศูนย์ครับ ขอบคุณครับ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ลองกำหนด ค่า 0 เป็น null ดูหรือยังครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
pieyai pieyai

Re: JPgraph กราฟเส้นทำอย่างไรไม่ให้เดือนมิย 67 กค 67 สค 67 กย 67 พล็อตค่าศูนย์ครับ ขอบคุณครับ

โพสต์ที่ยังไม่ได้อ่าน โดย pieyai pieyai »

ขอบคุณท่าน mindphp ครับ

ขออนุญาตนำ ข้อความ กำหนด ค่า 0 เป็น null ไปค้นในกูเกิ้ล เพื่อศึกษาค้นคว้าต่อไปครับ

ขอบคุณครับ
pieyai
PHP Newbie
PHP Newbie
โพสต์: 5
ลงทะเบียนเมื่อ: 30/09/2024 2:07 pm

Re: JPgraph กราฟเส้นทำอย่างไรไม่ให้เดือนมิย 67 กค 67 สค 67 กย 67 พล็อตค่าศูนย์ครับ ขอบคุณครับ

โพสต์ที่ยังไม่ได้อ่าน โดย pieyai »

ขอบคุณท่าน mindphp ครับ

ขออนุญาตนำ ข้อความ กำหนด ค่า 0 เป็น null ไปค้นในกูเกิ้ล เพื่อศึกษาค้นคว้าต่อไปครับ

ขอบคุณครับ
pieyai
PHP Newbie
PHP Newbie
โพสต์: 5
ลงทะเบียนเมื่อ: 30/09/2024 2:07 pm

Re: JPgraph กราฟเส้นทำอย่างไรไม่ให้เดือนมิย 67 กค 67 สค 67 กย 67 พล็อตค่าศูนย์ครับ ขอบคุณครับ

โพสต์ที่ยังไม่ได้อ่าน โดย pieyai »

ขอบคุณท่าน mindphp ที่แนะนำการกำหนด ค่า 0 เป็น null ครับ
ได้ลองกำหนดค่า 0 เป็น null แล้วกราฟไม่พล็อตค่าเดือนมิถุนายน กรกฎาคม สิงหาคม กันยายน
แต่เกิดปัญหาใหม่ขึ้นคือกราฟไม่พล็อตค่า 0 เดือนก่อนหน้านั้น ตามภาพ 1 จะมีค่าศูนย์ที่อยู่ในเดือนธันวาคม มกราคม
ซึ่งต้องการพล็อตค่าให้เป็น 0.00 กราฟก็จะข้ามไม่พล็อต
ถ้าต้องการให้พล็อตค่าให้เป็น 0.00 อย่างนี้ต้องทำอย่างไรต่อครับ (ภาพ 1)

ท่าน mindphp พอ ให้คำแนะนำได้ไหมครับว่า จะต้องไปปรับโค้ดที่ตรงไหน (ท่านอื่น ด้วยนะครับ)
ได้ลองปรับโค้ดกำหนดค่า 0 เป็น 0 ค่า null เป็น null ผลปรากฏว่า พล็อตค่าธันวาคม มกราคม
เป็น 0.00 แต่ ค่าเดือนมิถุนายน กรกฎาคม สิงหาคม กันยายน เป็น 0.00 ด้วย (ภาพ 3)
อย่างนี้ต้องแก้ไขอย่างไรต่อไปครับ
ขอบคุณครับ
—------------------------
ภาพ 1
โค้ดกำหนดค่า 0 เป็น null กราฟไม่พล็อตค่าเดือนมิถุนายน กรกฎาคม สิงหาคม กันยายน แต่เกิดปัญหาใหม่ขึ้นคือกราฟไม่พล็อตค่า 0 เดือนก่อนหน้านั้น ตามภาพ จะมีค่าศูนย์ที่อยู่ในเดือนธันวาคม มกราคม
ซึ่งต้องการพล็อตค่าให้เป็น 0.00 กราฟก็จะข้ามไม่พล็อต

// Validate the values in $arrprice
foreach ($arrprice as &$value) {
if ($value == 0 || !is_numeric($value)) {
$value = null; // Assign null if it's zero or not a number
}
}
unset($value);
$xdata = array("ต.ค", "พ.ย.", "ธ.ค.", "ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.");
$ydata = array(
isset($arrprice[0]) ? $arrprice[0] : null,
isset($arrprice[1]) ? $arrprice[1] : null,
isset($arrprice[2]) ? $arrprice[2] : null,
isset($arrprice[3]) ? $arrprice[3] : null,
isset($arrprice[4]) ? $arrprice[4] : null,
isset($arrprice[5]) ? $arrprice[5] : null,
isset($arrprice[6]) ? $arrprice[6] : null,
isset($arrprice[7]) ? $arrprice[7] : null,
isset($arrprice[8]) ? $arrprice[8] : null,
isset($arrprice[9]) ? $arrprice[9] : null,
isset($arrprice[10]) ? $arrprice[10] : null,
isset($arrprice[11]) ? $arrprice[11] : null
);
---------------------------
ภาพ 2
โค้ดเดิมทีพล็อตค่า ธันวาคม มกราคม เป็น 0.00 และพล็อตมิถุนายน กรกฎาคม สิงหาคม กันยายน เป็น 0.00 ด้วย
if(isset($arrprice))
{
if(!isset($arrprice[0])) $arrprice[0] = 0.00;
if(!isset($arrprice[1])) $arrprice[1] = 0.00;
if(!isset($arrprice[2])) $arrprice[2] = 0.00;
if(!isset($arrprice[3])) $arrprice[3] = 0.00;
if(!isset($arrprice[4])) $arrprice[4] = 0.00;
if(!isset($arrprice[5])) $arrprice[5] = 0.00;
if(!isset($arrprice[6])) $arrprice[6] = 0.00;
if(!isset($arrprice[7])) $arrprice[7] = 0.00;
if(!isset($arrprice[8])) $arrprice[8] = 0.00;
if(!isset($arrprice[9])) $arrprice[9] = 0.00;
if(!isset($arrprice[10])) $arrprice[10] = 0.00;
if(!isset($arrprice[11])) $arrprice[11] = 0.00;
}
else
{
$arrprice[0] = 0.00;
$arrprice[1] = 0.00;
$arrprice[2] = 0.00;
$arrprice[3] = 0.00;
$arrprice[4] = 0.00;
$arrprice[5] = 0.00;
$arrprice[6] = 0.00;
$arrprice[7] = 0.00;
$arrprice[8] = 0.00;
$arrprice[9] = 0.00;
$arrprice[10] = 0.00;
$arrprice[11] = 0.00;
}
—-----------------
ภาพ 3
โค้ดกำหนดค่า 0 เป็น 0 ค่า null เป็น null ผลปรากฏว่า พล็อตค่าธันวาคม มกราคม
เป็น 0.00 แต่ ค่าเดือนมิถุนายน กรกฎาคม สิงหาคม กันยายน เป็น 0.00 ด้วย
// Validate and assign values
foreach ($arrprice as &$value) {
if ($value === 0) {
$value = 0; // Assign 0 if it's zero
} elseif (!is_numeric($value)) {
$value = null; // Assign null if it's not a number
}
}
unset($value);
—--------------------------------
หมายเหตุ
ค่าใน ardress bar

http://localhost/energy/graph/Linevalue ... &arrprice=
450000,500000,0,0,100000,500000,600000,300000,0,0,0,0&menuname=%E0%B8%84%E0%B9%88%E0%B8%B2%E0%B9%84%E0%B8%9F%E0%B8%9F%E0%B9%89%E0%B8%B2&year=2567&unitname=%E0%B8%9A%E0%B8%B2%E0%B8%97
450000,500000,0,0,100000,500000,600000,300000,0,0,0,0

450000,500000,0,0,100000 (0,0 คือ ค่าเป็น 0)
600000,300000,0,0,0,0 (0,0,0,0 คือ ค่าเป็นค่า null - ไม่เป็น null,null,null,null )
คือ jpgraph ใน ardress bar ตีค่าทั้งค่า 0 และค่า null เป็น 0 หมด
ตรงนี้มีนัยอะไรหรือเปล่าครับ

ขอบคุณครับ
—------------
pieyai
PHP Newbie
PHP Newbie
โพสต์: 5
ลงทะเบียนเมื่อ: 30/09/2024 2:07 pm

Re: JPgraph กราฟเส้นทำอย่างไรไม่ให้เดือนมิย 67 กค 67 สค 67 กย 67 พล็อตค่าศูนย์ครับ ขอบคุณครับ

โพสต์ที่ยังไม่ได้อ่าน โดย pieyai »

ภาพ 1.png
ภาพ 1.png (77.76 KiB) Viewed 1741 times
ภาพ 2.png
ภาพ 2.png (61.93 KiB) Viewed 1741 times
ภาพ 3.png
ภาพ 3.png (81.13 KiB) Viewed 1741 times
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 18