基于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 相关文章推荐
document.getElementById方法在Firefox与IE中的区别
May 18 Javascript
JS打印gridview实现原理及代码
Feb 05 Javascript
jquery iframe操作详细解析
Nov 20 Javascript
AngularJS使用ngMessages进行表单验证
Dec 27 Javascript
详解JS中Array对象扩展与String对象扩展
Jan 07 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
Aug 30 Javascript
jquery 中toggle的2种用法详解(推荐)
Sep 02 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
Apr 12 Javascript
JavaScript中严格判断NaN的方法
Feb 16 Javascript
webpack的pitching loader详解
Sep 23 Javascript
Weex开发之地图篇的具体使用
Oct 16 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
Nov 09 Javascript
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
用session做客户验证时的注意事项
2006/10/09 PHP
php字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
php 方便水印和缩略图的图形类
2009/05/21 PHP
php入门教程 精简版
2009/12/13 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
帝国cms常用标签汇总
2015/07/06 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
2016/07/15 PHP
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
P3P Header解决Cookie跨域的问题
2013/03/12 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
2015/10/09 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
es6函数之尾调用优化实例分析
2020/04/25 Javascript
Python中几种导入模块的方式总结
2017/04/27 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
html5的新增的标签和废除的标签简要概述
2013/02/20 HTML / CSS
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
2014年社区国庆节活动方案
2014/09/16 职场文书
2015年档案室工作总结
2015/05/23 职场文书
年会主持人开场白台词
2015/05/29 职场文书
学困生转化工作总结
2015/08/13 职场文书
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android