基于canvasJS在PHP中制作动态图表


Posted in Javascript onMay 30, 2020

CanvasJS是一个JavaScript库,用于轻松为网页创建其他类型的图表。例如条形图,饼图,柱形图,面积图,折线图等。

让我们以需要创建一个图表的示例为例,在该图表中我们可以显示每月销售和购买的产品。我们将考虑两个数组,我们也可以从数据库中考虑它们。一旦我们从数据库中获取数据并将其存储在数组中,它就可以使用canvasJS轻松绘制动态图形。

创建一个文件并将其保存在项目文件夹中。文件名chart_sample.php包含数组形式的数据,其中第一个数组代表购买的产品,第二个数组代表sols产品列表。现在,使用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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
img的onload的另类用法
Jan 10 Javascript
JS动态获取当前时间,并写到特定的区域
May 03 Javascript
onbeforeunload与onunload事件异同点总结
Jun 24 Javascript
JavaScript立即执行函数的三种不同写法
Sep 05 Javascript
在JavaScript中使用JSON数据
Feb 15 Javascript
JQuery在循环中绑定事件的问题详解
Jun 02 Javascript
js获取ip和地区
Mar 10 Javascript
javascript中的面向对象
Mar 30 Javascript
vue做网页开场视频的实例代码
Oct 20 Javascript
Vue props 单向数据流的实现
Nov 06 Javascript
JavaScript面试技巧之数组的一些不low操作
Mar 22 Javascript
jquery操作select常见方法大全【7种情况】
May 28 jQuery
jQuery实现视频展示效果
May 30 #jQuery
vue实现购物车加减
May 30 #Javascript
基于vue和bootstrap实现简单留言板功能
May 30 #Javascript
JS常见内存泄漏及解决方案解析
May 30 #Javascript
react结合bootstrap实现评论功能
May 30 #Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 #jQuery
JavaScript类的继承多种实现方法
May 30 #Javascript
You might like
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
PHP中isset、empty的用法与区别示例详解
2020/11/05 PHP
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
Jquery:ajax实现翻页无刷新功能代码
2013/08/05 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
AngularJS 指令详细介绍
2016/07/27 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
jQuery模拟下拉框选择对应菜单的内容
2017/03/07 Javascript
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
vue.js todolist实现代码
2017/10/29 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
在Python中通过threading模块定义和调用线程的方法
2016/07/12 Python
Python 编码处理-str与Unicode的区别
2016/09/06 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
Python+tkinter使用80行代码实现一个计算器实例
2018/01/16 Python
python3中zip()函数使用详解
2018/06/29 Python
Django缓存系统实现过程解析
2019/08/02 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
python读取word 中指定位置的表格及表格数据
2019/10/23 Python
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
光声世纪笔试题目
2012/08/25 面试题
恒华伟业笔试面试题
2015/02/26 面试题
教师评优事迹材料
2014/01/10 职场文书
贷款委托书怎么写
2014/08/02 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
2014年学校党建工作总结
2014/11/11 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS