这几天博主做了个需求,需要将图形统计的数据以报表的形式显示出来:
HighChart 功能:
Highcharts 云服务提供简单便捷的方法生成可视化图表,用户不再需要编程基础,只需要复制数据即可生成漂亮,可定制的图表。云服务提供图表生成,托管,分享等功能。
主要特点:
这里用到了JQuery 插件 HighCharts: 讲解链接 http://www.hcharts.cn/docs/index.php
这里主要分享下代码。
其中js资源是通过CDN获取的,当然可以自己下载: HighCharts下载链接:http://www.hcharts.cn/product/download.php
饼状图的一些配置:
代码:
<!DOCTYPE html> <html> <head> <title>每日部门考勤统计</title> <script type="text/javascript" src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"></script> <script type="text/javascript" src="http://cdn.hcharts.cn/highcharts/highcharts.js"></script> <style type="text/css"> </style> <script type="text/javascript"> //<script language="text/javascript" type="text/javascript" src="http://cdn.hcharts.cn/highcharts/exporting.js"> var k = { "depList": [ {"departmentName":"研发部","shouldNum":3,"actualNum":2}, {"departmentName":"运维部","shouldNum":5,"actualNum":5}, {"departmentName":"市场部","shouldNum":10,"actualNum":8}, {"departmentName":"决策部","shouldNum":10,"actualNum":10} ] }; $(document).ready(function() { var length = k.depList.length; //console.log(length); for (var i = 0; i < length; i++) { //动态加载DOM节点 $("#depStat").append('<div id="container' + i + '" style="width: 300px;height: 300px; background-color:green; float:left;"></div>'); var domIdString = '#container' + i; //console.log(domIdString); $(domIdString).highcharts({ chart: { plotBackgroundColor: null, plotBorderWidth: null, plotShadow: true }, //标题 title: { text: null }, //提示信息, 鼠标悬浮时 tooltip: { enabled: false, shadow: false, // 是否显示阴影 formatter: function () { return '<b>' + this.point.name + '</b>: ' + this.percentage.toFixed(2) + ' %'; } }, //数据显示选项 plotOptions: { pie: { allowPointSelect: false, //取消选择切分的效果 cursor: 'pointer', dataLabels: { enabled: true, //color: '#000000', formatter: function () { return '<b>' + this.point.name + '</b>: ' + this.point.percentage.toFixed(2) + ' %'; }, distance: -20, style: { color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black' } } } }, //版权信息 credits: { enabled: false }, //数据信息 series: [{ type: 'pie', name: null, data: null }] }); //对每个DOM节点的修改 var currentChart = $(domIdString).highcharts(); currentChart.showLoading(); currentChart.setTitle({text: k.depList[i].departmentName }); var currentSeries = currentChart.series[0]; var data = [ ['实到人数', k.depList[i].actualNum], ['缺勤人数',k.depList[i].shouldNum - k.depList[i].actualNum] ] currentSeries.setData(data); currentChart.setSize(200, 200); currentChart.hideLoading(); } }); </script> </head> <body> <div id="depStat" style="width:1000px"></div> </body> </html>
这里博主遇到了个问题,highCharts 生成多个饼状图的时候,饼状图的大小不一致, 据说只要 $("xxxx").highCharts().setSize(x,y) 即可。。。,但是貌似对于设置300及以上的宽高又出现问题了,求大神解答。。。
实现效果: