基于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 相关文章推荐
js 获取浏览器版本以此来调整CSS的样式
Jun 03 Javascript
js读取cookie方法总结
Oct 31 Javascript
js实现Select头像选择实时预览代码
Aug 17 Javascript
纯CSS3代码实现滑动开关效果
Aug 19 Javascript
javascript模拟C#格式化字符串
Aug 26 Javascript
基于JavaScript实现类似于百度学术高级检索功能
Mar 02 Javascript
Vue2实现组件props双向绑定
Dec 02 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
Aug 17 Javascript
解决Vue中 父子传值 数据丢失问题
Aug 27 Javascript
vue视频播放暂停代码
Nov 08 Javascript
vue实现路由不变的情况下,刷新页面操作示例
Feb 02 Javascript
详解vue 组件
Jun 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 HandlerSocket的使用
2011/05/02 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
2015/09/14 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
JS简单实现父子窗口传值功能示例【未使用iframe框架】
2017/09/20 Javascript
JS控制鼠标拒绝点击某一按钮的实例
2017/12/29 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
mustache.js实现首页元件动态渲染的示例代码
2020/12/28 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
[01:10:27]DOTA2-DPC中国联赛正赛 SAG vs XG BO3 第二场 3月5日
2021/03/11 DOTA
python交互式图形编程实例(三)
2017/11/17 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
Python爬虫爬取、解析数据操作示例
2020/03/27 Python
python3 配置logging日志类的操作
2020/04/08 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
西部世纪.net笔试题面试题
2014/04/03 面试题
研修第一天随笔感言
2014/02/15 职场文书
2015年个人审计工作总结
2015/04/07 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书
创作书写之导游词实用技巧分享(干货)
2019/12/20 职场文书
详解PHP服务器如何在有限的资源里最大提升并发能力
2021/05/25 PHP
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript