博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Chartjs:Line chart的使用及必要参数说明
阅读量:6087 次
发布时间:2019-06-20

本文共 5027 字,大约阅读时间需要 16 分钟。

版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/70171717

Web前端做月度销售额的走势图时,Chartjs是一个不错的选择,展示效果令人满意,使用方法也很简单。

展示效果如下:

这里写图片描述

数据如下:

这里写图片描述

第一步、获取数据

public void datableGoodAmountByLastMonths(HttpServletResponse response) {    // 获取数据的list集合。    List
result = this.goodOrderService.getGoodAmountByShopUidLastMonths(InfoEL.getContextUid(), 7); // 转成json Map
map = new HashMap
(); map.put("statusCode", 200); map.put("result", value); String jsonText = JSON.toJSONString(map); // 写入到response PrintWriter writer = null; try { response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); response.setContentType(contentType); writer = response.getWriter(); writer.write(jsonText); writer.flush(); } catch (IOException e) { throw new OrderException(e.getMessage()); } finally { if (writer != null) writer.close(); }}

第二步、在页面上创建Line Chart

通过赋值href把获取数据的url传递给chartjs。

设置linechart的参数,关键参数我已中文注解。

// linechartvar areaChartOptions = {    // 轴线的颜色    scaleLineColor : "rgba(60,141,188,0.8)",    scaleShowLabels : true,// y轴上刻度的数值显示// 显示轴线、以及刻度,默认为true    showScale : true,    // 在图标上显示网状表格。默认为false    scaleShowGridLines : false,    // 线条是否显示弧度,默认为true    bezierCurve : false,    // 显示数据线上的坐标点,默认为true,我认为显示出来比较好,否则鼠标找点很困难。    pointDot : true,    // 响应式    responsive : true,    // String - Colour of the grid lines    scaleGridLineColor : "rgba(0,0,0,.05)",    // Number - Width of the grid lines    scaleGridLineWidth : 1,    // Boolean - Whether to show horizontal lines    // (except X axis)    scaleShowHorizontalLines : true,    // Boolean - Whether to show vertical lines (except    // Y axis)    scaleShowVerticalLines : true,    // Number - Tension of the bezier curve between    // points    bezierCurveTension : 0.3,    // Number - Radius of each point dot in pixels    pointDotRadius : 4,    // Number - Pixel width of point dot stroke    pointDotStrokeWidth : 1,    // Number - amount extra to add to the radius to    // cater for hit detection outside the drawn point    pointHitDetectionRadius : 20,    // Boolean - Whether to show a stroke for datasets    datasetStroke : true,    // Number - Pixel width of dataset stroke    datasetStrokeWidth : 2,    // Boolean - Whether to fill the dataset with a    // color    datasetFill : true,    // String - A legend template    legendTemplate : "
    -legend\"><% for (var i=0; i
  • \"><%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>
", // Boolean - whether to maintain the starting aspect // ratio or not when responsive, if set to false, // will take up entire container maintainAspectRatio : true};

第三步,将数据赋值给linechart

$(function() {
$.ajax({ type : 'POST', url : $("#salesChart").attr("href"), dataType : "json", cache : false, success : function(json) {
// 判断获取的数据状态是否为200正常响应 if (json[YUNM.keys.statusCode] == YUNM.statusCode.ok) { // 整理数据,chartjs需要数组的赋值,比起Morris(只需要指明x、y坐标即可)图标来说,这一点不方便 var labels = []; var data = []; var data1 = []; for (var i = 0; i < json.result.length; i++) { data.push(json.result[i].good_amount);// 第一组数据交易额 data1.push(json.result[i].good_count);// 第二组数据 labels.push(json.result[i].all_day);// 组装x轴上显示得label } // LINE CHART,需要获取canvas的dom节点 var areaChartCanvas = $("#salesChart").get(0).getContext("2d"); var areaChart = new Chart(areaChartCanvas); // 画线 areaChart.Line({ labels : labels,// x轴上显示得label datasets : [ { label : "销售额", // 线条颜色 fillColor : "rgba(60,141,188,0.9)", strokeColor : "rgba(60,141,188,0.8)", pointColor : "#3b8bba", pointStrokeColor : "rgba(60,141,188,1)", pointHighlightFill : "#fff", pointHighlightStroke : "rgba(60,141,188,1)", // 第一条线的数据 data : data }, { label : "销量", fillColor : "rgba(210, 214, 222, 1)", strokeColor : "rgba(210, 214, 222, 1)", pointColor : "rgba(210, 214, 222, 1)", pointStrokeColor : "#c1c7d1", pointHighlightFill : "#fff", pointHighlightStroke : "rgba(220,220,220,1)", data : data1 }, ] }, areaChartOptions);// 配置项 } } });});

OK,linechart的使用总结完毕。

不务正业的IT狗,喜欢读书和写作!

微信扫一扫,关注 沉默王二 公众号:

你可能感兴趣的文章
使用思科模拟器Packet Tracer与GNS3配置IPv6隧道
查看>>
iOS开发-NSPredicate
查看>>
我的友情链接
查看>>
Exchange Server 2003 SP2 数据存储大小限制修改
查看>>
expr命令用法-实例讲解
查看>>
酷派8705救砖
查看>>
iOS10里的通知与推送
查看>>
# C 语言编写二进制/十六进制编辑器
查看>>
EMS SQL Management Studio for MySQL
查看>>
我的友情链接
查看>>
做母亲不容易
查看>>
详细的文档(吐槽)
查看>>
DEVEXPRESS 随记
查看>>
Ember.js 入门指南——{{action}} 助手
查看>>
VMware下安装QT Creator
查看>>
find结合重定向符清理文件
查看>>
非递归实现二叉树的遍历(前序、中序、后序)
查看>>
[CCNA图文笔记]-2-OSI参考模型和设备的对应关系
查看>>
Spark 运维实战简介
查看>>
HTTP 状态码
查看>>