基于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 相关文章推荐
判断脚本加载是否完成的方法
May 26 Javascript
jquery获取下拉列表的值为null的解决方法
Mar 18 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
May 07 Javascript
js获取日期:昨天今天和明天、后天
Jun 11 Javascript
jQuery寻找n以内完全数的方法
Jun 24 Javascript
javascript函数自动执行常用方法汇总
Mar 28 Javascript
详解axios在node.js中的post使用
Apr 27 Javascript
在vue-cli中组件通信的方法
Dec 16 Javascript
js登录滑动验证的实现(不滑动无法登陆)
Jan 03 Javascript
详解express + mock让前后台并行开发
Jun 06 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
Jun 08 Javascript
js实现拖拽元素选择和删除
Aug 25 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服务器实现多session并发运行
2006/10/09 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
Codeigniter购物车类不能添加中文的解决方法
2014/11/29 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
PHP实现添加购物车功能
2017/03/06 PHP
Jquery选择子控件&quot;大于号&quot;和&quot; &quot;区别介绍及使用示例
2013/06/25 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
2018/07/26 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
Python中使用支持向量机(SVM)算法
2017/12/26 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
python输入多行字符串的方法总结
2019/07/02 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
Python lambda表达式原理及用法解析
2020/08/18 Python
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
运动会稿件200字
2014/02/07 职场文书
保密承诺书
2014/03/27 职场文书
春风行动实施方案
2014/03/28 职场文书
大一新生期末自我评价
2014/09/12 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
实验心得体会范文
2016/01/25 职场文书
golang连接MySQl使用sqlx库
2022/04/14 Golang
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python