今天下午开始着手看图表方面的资料,为项目的数据展示和报表做前期的准备和铺垫,打算在Highcharts和Echarts之间进行选择。
两者都是功能强大、文档齐全的js图表框架,照着官方文档搬了几个demo,先以静态方式嵌入到项目中,熟练后进行二次包装,后面再结合真实数据进行后端绑定。
Highcharts使用第一步,定义一个容器。
<div id="container" style="min-width: 700px; height: 400px"></div>
第二步,引入相关js文件,除了主文件外,还提供了一个导出功能文件exporting.js
<script type="text/javascript" src="../scripts/highcharts/highcharts.js"></script> <script type="text/javascript" src="../scripts/highcharts/exporting.js"></script>
第三步,数据展示逻辑,主要参数就是图表类型,标题,X、Y轴定义和具体数据部分。
<script type="text/javascript"> $(function () { $(‘#container‘).highcharts({ chart: { type: ‘column‘ }, title: { text: ‘平均降雨量‘ }, subtitle: { text: ‘来源: WorldClimate.com‘ }, xAxis: { categories: [‘一月‘, ‘二月‘, ‘三月‘, ‘四月‘, ‘五月‘, ‘六月‘, ‘7月‘, ‘8月‘, ‘9月‘, ‘10月‘, ‘11月‘, ‘12月‘] }, yAxis: { min: 0, title: { text: ‘降雨量 (mm)‘ } }, tooltip: { headerFormat: ‘<span style="font-size:10px">{point.key}</span><table>‘, pointFormat: ‘<tr><td style="color:{series.color};padding:0">{series.name}: </td>‘ + ‘<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>‘, footerFormat: ‘</table>‘, shared: true, useHTML: true }, plotOptions: { column: { pointPadding: 0.2, borderWidth: 0 } }, series: [{ name: ‘东京‘, data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4] }, { name: ‘纽约‘, data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3] }, { name: ‘伦敦‘, data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2] }, { name: ‘柏林‘, data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1] }] }); }); </script>
这种成熟框架做了很好的封装,简单三步就完成了较为丰富的图表展示,还提供了几种格式的导出功能,相对于以前服务端控件确实方便不少。
Highcharts对个人免费,商业涉及版权问题,后期项目估计还是得选用国人开发的开源利器Echarts,权当熟悉javascript语法和相关实现思路了。
时间: 2024-10-12 22:14:19