基于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 相关文章推荐
javascript 获取url参数和script标签中获取url参数函数代码
Jan 22 Javascript
基于jquery.Jcrop的头像编辑器
Mar 01 Javascript
javascript 面向对象的JavaScript类
May 04 Javascript
如何实现JavaScript动态加载CSS和JS文件
Dec 28 Javascript
javascript中不易分清的slice,splice和split三个函数
Mar 29 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
May 03 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
Jun 13 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
Jul 04 Javascript
jQuery实现动态给table赋值的方法示例
Jul 04 jQuery
Javascript实现找不同色块的游戏
Jul 17 Javascript
webpack 2.x配置reactjs基本开发环境详解
Aug 08 Javascript
ES6 迭代器与可迭代对象的实现
Feb 11 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
php完全过滤HTML,JS,CSS等标签
2009/01/16 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
javascript AutoScroller 函数类
2009/05/29 Javascript
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
jquery isType() 类型判断代码
2011/02/14 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
js实现飞入星星特效代码
2014/10/17 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
JavaScript中push(),join() 函数 实例详解
2016/09/06 Javascript
jQuery事件用法详解
2016/10/06 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
JS实现字符串去重及数组去重的方法示例
2018/04/21 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
简单了解Ajax表单序列化的实现方法
2019/06/14 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
Python中的random()方法的使用介绍
2015/05/15 Python
Python导出DBF文件到Excel的方法
2015/07/25 Python
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
python中的装饰器该如何使用
2021/06/18 Python
详解Vue slot插槽
2021/11/20 Vue.js