Highcharts 是一个用纯JavaScript编写的一个图表库。
特性:
兼容性 - 支持所有主流浏览器和移动平台(android、iOS等)。
多设备 - 支持多种设备,如手持设备 iPhone/iPad、平板等。
免费使用 - 开源免费。
轻量 - highcharts.js 内核库大小只有 35KB 左右。
配置简单 - 使用 json 格式配置
动态 - 可以在图表生成后修改。
多维 - 支持多维图表
配置提示工具 - 鼠标移动到图表的某一点上有提示信息。
时间轴 - 可以精确到毫秒。
导出 - 表格可导出为 PDF/ PNG/ JPG / SVG 格式
输出 - 网页输出图表。
可变焦 - 选中图表部分放大,近距离观察图表;
外部数据 - 从服务器载入动态数据。
文字旋转 - 支持在任意方向的标签旋转。
应用步骤
1引入highcharts,也可以下载
<script src="https://cdn.hcharts.cn/highcharts/highcharts.js"></script>
2.
1 $(function () { 2 initChart() 3 }); 4 function initChart(){ 5 var config = { 6 chart: { 7 type: \'column\' 8 }, 9 title: { 10 text: \'IT文档信息统计\' 11 }, 12 yAxis: { 13 title: { 14 text: \'文档数量\' 15 } 16 }, 17 xAxis: { 18 type: \'category\' 19 }, 20 legend: { 21 enabled: false 22 }, 23 plotOptions: { 24 series: { 25 borderWidth: 0, 26 dataLabels: { 27 enabled: true, 28 format: \'{point.y}\' 29 } 30 } 31 }, 32 tooltip: { 33 headerFormat: \'<span style="font-size:11px">{series.name}</span><br>\', 34 pointFormat: \'<span style="color:{point.color}">{point.name}</span>: <b>{point.y}</b> <br/>\' 35 }, 36 series: [{ 37 name: \'文档数量\', 38 colorByPoint: true, 39 data:[] 40 41 }] 42 }; 43 44 $.ajax({ 45 url:\'/itbg/backgroundhc.html\', 46 dataType:\'json\', 47 success:function(arg){ 48 var jsondata = []; 49 for(var i in arg){ 50 jsondata.push({ 51 name:arg[i].name, 52 y:parseFloat(arg[i].y) 53 }); 54 } 55 config[\'series\'][0][\'data\'] =jsondata; 56 $(\'#container\').highcharts(config); 57 } 58 }) 59 }
3 上面ajax通过url:\'/itbg/backgroundhc.html\',去后端获取需要的数据类型
回调如下:添加到事先创建后的标签内
[{\'y\': 8, \'name\': \'邮箱\'}, {\'y\': 12, \'name\': \'打印机\'}, {\'y\': 5, \'name\': \'VPN\'}, {\'y\': 6, \'name\': \'网络\'}, {\'y\': 8, \'name\': \'员工入职\'}, {\'y\': 5, \'name\': \'公告信息\'}, {\'y\': 4, \'name\': \'企业文化\'}]
1 def backgroundhc(request): 2 response = [] 3 article_class = models.article.article_choices 4 for article_list in article_class: 5 article_count = models.article.objects.filter(status=article_list[0]).count() 6 temp = { 7 \'y\': article_count, 8 \'name\':article_list[1], 9 } 10 response.append(temp) 11 return HttpResponse(json.dumps(response))