HighCharts数据可视化
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))