基于canvasJS在PHP中制作動(dòng)態(tài)圖表
CanvasJS是一個(gè)JavaScript庫(kù),用于輕松為網(wǎng)頁(yè)創(chuàng)建其他類型的圖表。例如條形圖,餅圖,柱形圖,面積圖,折線圖等。
讓我們以需要?jiǎng)?chuàng)建一個(gè)圖表的示例為例,在該圖表中我們可以顯示每月銷售和購(gòu)買的產(chǎn)品。我們將考慮兩個(gè)數(shù)組,我們也可以從數(shù)據(jù)庫(kù)中考慮它們。一旦我們從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)并將其存儲(chǔ)在數(shù)組中,它就可以使用canvasJS輕松繪制動(dòng)態(tài)圖形。
創(chuàng)建一個(gè)文件并將其保存在項(xiàng)目文件夾中。文件名chart_sample.php包含數(shù)組形式的數(shù)據(jù),其中第一個(gè)數(shù)組代表購(gòu)買的產(chǎn)品,第二個(gè)數(shù)組代表sols產(chǎn)品列表。現(xiàn)在,使用canvasJS繪制圖形。
例如:
<?php
// First array for purchased product
$purchased= array(10, 15, 19, 0, 5, 7, 0, 0, 12, 13, 10, 1);
// Second array for sold product
$sold= array(7, 12, 14, 0, 3, 7, 0, 0, 10, 7, 5, 0);
// Data to draw graph for purchased products
$dataPoints = array(
array("label"=> "Jan", "y"=> $purchased[0]),
array("label"=> "Feb", "y"=> $purchased[1]),
array("label"=> "March", "y"=> $purchased[2]),
array("label"=> "April", "y"=> $purchased[3]),
array("label"=> "May", "y"=> $purchased[4]),
array("label"=> "Jun", "y"=> $purchased[5]),
array("label"=> "July", "y"=> $purchased[6]),
array("label"=> "Aug", "y"=> $purchased[7]),
array("label"=> "Sep", "y"=> $purchased[8]),
array("label"=> "Oct", "y"=> $purchased[9]),
array("label"=> "Nov", "y"=> $purchased[10]),
array("label"=> "Dec", "y"=> $purchased[11])
);
// Data to draw graph for sold products
$dataPoints2 = array(
array("label"=> "Jan", "y"=> $sold[0]),
array("label"=> "Feb", "y"=> $sold[1]),
array("label"=> "March", "y"=> $sold[2]),
array("label"=> "April", "y"=> $sold[3]),
array("label"=> "May", "y"=> $sold[4]),
array("label"=> "Jun", "y"=> $sold[5]),
array("label"=> "July", "y"=> $sold[6]),
array("label"=> "Aug", "y"=> $sold[7]),
array("label"=> "Sep", "y"=> $sold[8]),
array("label"=> "Oct", "y"=> $sold[9]),
array("label"=> "Nov", "y"=> $sold[10]),
array("label"=> "Dec", "y"=> $sold[11])
);
?>
<!DOCTYPE HTML>
<html>
<head>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js">
</script>
<script>
window.onload = function () {
var chart = new CanvasJS.Chart("chartContainer", {
animationEnabled: true,
title:{
text: "Monthly Purchased and Sold Product"
},
axisY: {
title: "Purchased",
titleFontColor: "#4F81BC",
lineColor: "#4F81BC",
labelFontColor: "#4F81BC",
tickColor: "#4F81BC"
},
axisY2: {
title: "Sold",
titleFontColor: "#C0504E",
lineColor: "#C0504E",
labelFontColor: "#C0504E",
tickColor: "#C0504E"
},
toolTip: {
shared: true
},
legend: {
cursor:"pointer",
itemclick: toggleDataSeries
},
data: [{
type: "column",
name: "Purchased",
legendText: "Purchased",
showInLegend: true,
dataPoints:<?php echo json_encode($dataPoints,
JSON_NUMERIC_CHECK); ?>
},
{
type: "column",
name: "Sold",
legendText: "Sold",
axisYType: "secondary",
showInLegend: true,
dataPoints:<?php echo json_encode($dataPoints2,
JSON_NUMERIC_CHECK); ?>
}]
});
chart.render();
function toggleDataSeries(e) {
if (typeof(e.dataSeries.visible) === "undefined"
|| e.dataSeries.visible) {
e.dataSeries.visible = false;
}
else {
e.dataSeries.visible = true;
}
chart.render();
}
}
</script>
</head>
<body>
<div id="chartContainer" style="height: 300px; width: 100%;"></div>
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
鼠標(biāo)選擇動(dòng)態(tài)改變網(wǎng)頁(yè)背景顏色的JS代碼
這篇文章主要介紹了鼠標(biāo)選擇動(dòng)態(tài)改變網(wǎng)頁(yè)背景顏色的JS代碼,有需要的朋友可以參考一下2013-12-12
JS上傳圖片前的限制包括(jpg jpg gif及大小高寬)等
文件上傳之前的檢測(cè),通常是通過(guò)文件名來(lái)判斷文件類型是否合法,但是要想檢測(cè)文件的大小很難辦到,除非在本地或者使用控件。使用JS可以輕松解決詞問(wèn)題,js在上傳圖片前判斷大小 這個(gè)可以用javascript實(shí)現(xiàn),效果2012-12-12
獲取HTML DOM節(jié)點(diǎn)元素的方法的總結(jié)
在Web應(yīng)用程序特別是Web2.0程序開發(fā)中,經(jīng)常要獲取頁(yè)面中某個(gè)元素,然后更新該元素的樣式、內(nèi)容等。如何獲取要更新的元素,是首先要解決的問(wèn)題。2009-08-08
js動(dòng)態(tài)創(chuàng)建及移除div的方法
這篇文章主要介紹了js動(dòng)態(tài)創(chuàng)建及移除div的方法,涉及javascript針對(duì)頁(yè)面元素的動(dòng)態(tài)操作技巧,需要的朋友可以參考下2015-06-06
js中將具有數(shù)字屬性名的對(duì)象轉(zhuǎn)換為數(shù)組
js中將具有數(shù)字屬性名的對(duì)象轉(zhuǎn)換為數(shù)組,雖然不太常用,但我們的確可以給對(duì)象添加以數(shù)字為屬性名的屬性2011-03-03
JavaScript實(shí)現(xiàn)前端飛機(jī)大戰(zhàn)小游戲
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)前端飛機(jī)大戰(zhàn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
JavaScript進(jìn)階知識(shí)點(diǎn)作用域詳解
這篇文章主要介紹了JavaScript進(jìn)階講解一作用域,主要包括作用域、函數(shù)、閉包、面向?qū)ο?、ES新特性、事件循環(huán)、微任務(wù)、宏任務(wù)、內(nèi)存管理、Promise、await、?asnyc、防抖、節(jié)流等等知識(shí)點(diǎn),需要的朋友可以參考下2022-05-05

