highcharts 使用实例
后端使用django实现,返回的数据可以修改为从数据库获取或其他方式获取,实例里是写死的数据。
urls配置:
url(r'^outip/chart/$', views.charts), url(r'^outip/getchart/$', views.get_chart), url(r'^outip/getlast/$', views.get_last), url(r'^outip/detail/$', views.get_detail_chart),
View Code
所有实例浏览器访问的后端方法:charts
@csrf_exempt def charts(request):return render_to_response('html/chart.html')
View Code
所有实例使用的html代码:chart.html
<html> <head> <meta charset="utf-8"> <style> </style> <script type="text/javascript" src="/outip/staticfiles/js/jquery-2.1.4.js"></script> <script type="text/javascript" src="/outip/staticfiles/highcharts/js/highcharts.js"></script> <script type="text/javascript" src="/outip/staticfiles/highcharts/js/modules/exporting.js"></script> <script type="text/javascript" src="/outip/staticfiles/js/activechart.js"></script> <!-- <script type="text/javascript" src="/outip/staticfiles/js/chart.js"></script> --> </head> <body> <div id="container" style="min-width:400px;height:400px"></div> <script> </script> </body> </html>
View Code
1.实时刷新曲线图(若取消实时刷新,将activechart.js中 chart的events删除即可):
js代码: activechart.js
$(document).ready(function () {Highcharts.setOptions({decimalPoint: '.', // 小数点号,例如 12.50thousandsSep: ',', // 千分号,例如 12,000 global: {useUTC: false}});function getchart() {var datax = [];var datay = [];$.ajax({type: "POST",dataType: "json",url:'/outip/getchart/',success: function(result) {if (result.errno == 0) {for(var i=0;i<result.data.length;i++) {datax.push(result.data[i].x)datay.push(result.data[i].y)};start(datax,datay);//console.log(datax);//console.log(t);}else {alert('err');}}}); } function start(datax,datay) {$('#container').highcharts({chart: {type: 'spline',animation: Highcharts.svg,marginRight: 10,events: {load: function () {var series = this.series[0];setInterval(function () {$.ajax({type: "POST",dataType: "json",url:'/outip/getlast/',success: function(result) {if (result.errno == 0) {series.addPoint([result.data.x, result.data.y], true, true);} else {alert('last err');}}});}, 60000);}}},title: {text: 'Total flow',x: -20 //center },//subtitle: {// text: 'Source:',// x: -20//}, xAxis: {categories: datax//categories: ["2016-10-08 17:11"] },yAxis: {title: {text: 'flow/Bytes'},plotLines: [{value: 0,width: 1,color: '#808080'}]},credits:{enabled:false // 禁用版权信息 },tooltip: {valueSuffix: ' Bytes',formatter:function(){//console.log(this);return this.key+'<br>'+Highcharts.numberFormat(this.y,'2','.',',')+' Bytes';}},legend: {layout: 'vertical',align: 'center',verticalAlign: 'bottom',borderWidth: 0},series: [{name: 'Flow',data: datay}]}); } getchart(); });
View Code
后端方法:
1) 获取初始数据:get_chart
@csrf_exempt def get_chart(request):data = [{'x':'2016-10-08 17:11','y':1},{'x':'2016-10-08 17:12','y':3},{'x':'2016-10-08 17:13','y':4},{'x':'2016-10-08 17:14','y':400},{'x':'2016-10-08 17:15','y':124},{'x':'2016-10-08 17:16','y':2444},{'x':'2016-10-08 17:17','y':23334},{'x':'2016-10-08 17:18','y':40}]return HttpResponse(json.dumps({'errno':0,'data':data}))
View Code
2)获取最新的一个数据:get_last
@csrf_exempt def get_last(request):data = {'x':'2016-10-08 17:19','y':100}return HttpResponse(json.dumps({'errno':0,'data':data}))
View Code
2.基础柱状图
js代码:activechart.js(datay每个元素中要有name和data两个key,且名字不能改,data的值为一个数组;若将plotOptions.column.stacking属性加上,则成为堆叠柱状图)
function getchart() {var datax;var datay;$.ajax({type: "POST",dataType: "json",url:'/outip/detail/',success: function(result) {if (result.errno == 0) {datax = result.data.timedatay = result.data.valuestart(datax,datay);//console.log(datay);//console.log(t);}else {alert('err');}}}); } function start(datax,datay) {$('#container').highcharts({chart: {type: 'column'},title: {text: 'Detail flow',x: -20 //center },credits:{enabled:false // 禁用版权信息 },//subtitle: {// text: 'Source:',// x: -20//}, xAxis: {categories: datax//categories: ["2016-10-08 17:11"] },yAxis: {title: {text: 'flow/Bytes'},plotLines: [{value: 0,width: 1,color: '#808080'}]},tooltip: {formatter: function () {return this.x + ' Total: ' + Highcharts.numberFormat(this.point.stackTotal,'2','.',',') +' Bytes<br/><b>' + this.series.name + ': ' + Highcharts.numberFormat(this.y,'2','.',',') + ' Bytes</b>';},valueSuffix: ' Bytes'},plotOptions: {column: {pointPadding: 0.2,borderWidth: 0,//stacking: 'normal', dataLabels: {enabled: true,color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'black',style: {textShadow: '0 0 3px black'}}}},/*legend: {layout: 'vertical',align: 'right',verticalAlign: 'middle',borderWidth: 0},*///series: [{'name':'1','data':[1]},{'name':'2','data':[3]}] /*[{series: datay /*[{name: 'Flow',data: datay}]*/}); } getchart();
View Code
后端方法:get_detail_chart
@csrf_exempt def get_detail_chart(request):data = {'time':['2016-10-08 17:19'],'value':[{'name':'x0','data':[70]},{'name':'x1','data':[60]},{'name':'x2','data':[21]},{'name':'x3','data':[31]},{'name':'x4','data':[50]},{'name':'x5','data':[40]},{'name':'x6','data':[22]},{'name':'x7','data':[1]},{'name':'x8','data':[20]},{'name':'x9','data':[10]},{'name':'x10','data':[30]}]}return HttpResponse(json.dumps({'errno':0,'data':data}))
View Code
3.堆叠柱状图
js代码:activechart.js
function getchart() {var datax;var datay;$.ajax({type: "POST",dataType: "json",url:'/outip/getchart/',success: function(result) {if (result.errno == 0) {for(var i=0;i<result.data.length;i++) {datax = result.data[i].time;datay = result.data[i].value;};start(datax,datay);//console.log(datax);//console.log(t);}else {alert('err');}}}); } function start(datax,datay) {$('#container').highcharts({chart: {type: 'column'},title: {text: 'Total flow',x: -20 //center },//subtitle: {// text: 'Source:',// x: -20//}, xAxis: {categories: datax//categories: ["2016-10-08 17:11"] },yAxis: {title: {text: 'flow/Bytes'},plotLines: [{value: 0,width: 1,color: '#808080'}]},tooltip: {valueSuffix: ' Bytes'},plotOptions: {column: {stacking: 'normal',dataLabels: {enabled: true,color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white',style: {textShadow: '0 0 3px black'}}}},legend: {layout: 'vertical',align: 'right',verticalAlign: 'middle',borderWidth: 0},//series: [{'name':'1','data':[1]},{'name':'2','data':[3]}] /*[{series: datay /*[{name: 'Flow',data: datay}]*/}); } getchart();
View Code
后端方法:get_chart
@csrf_exempt def get_chart(request):data = [{'time':['2016-10-08 17:11','2016-10-08 17:12'],'value':[{'name':'f1','data':[1,3]},{'name':'f2','data':[3,1]}]}]return HttpResponse(json.dumps({'errno':0,'data':data}))
View Code
转载于:https://www.cnblogs.com/276815076/p/5945076.html
highcharts 使用实例相关推荐
- Highcharts 配置语法;Highcharts 配置选项详细说明
Highcharts 配置语法 本章节我们将为大家介绍使用 Highcharts 生成图表的一些配置. 第一步:创建 HTML 页面 创建一个 HTML 页面,引入 jQuery 和 Highchar ...
- 前端开发基础知识汇总
一.HTML 1.前言与常用标签 浏览器 内核 备注 IE Trident IE.猎豹安全.360极速浏览器.百度浏览器 firefox Gecko 可惜这几年已经没落了,打开速度慢.升级频繁.猪一样 ...
- Spring Cloud微服务系统架构的一些简单介绍和使用
Spring Cloud 目录 特征 云原生应用程序 Spring Cloud上下文:应用程序上下文服务 引导应用程序上下文 应用程序上下文层次结构 改变Bootstrap的位置Properties ...
- highcharts与highstock实例
<html> <head><title>highcharts报表示例</title><meta http-equiv="Content- ...
- Highcharts双饼图使用实例
这次实践了Highcharts的双饼图,确实比普通饼图复杂多了,关键相关数据 多不能继续用简单基本数据类型Map,list了,单独建了个VO存放要用到的数据,不多说,贴代码! JS: /**查看机器占 ...
- Highcharts+Spring饼图使用实例
项目上要用到Hightcharts展示平台机器占用情况,使用这类第三方插件很方便就能实现 JSP: <script type="text/javascript" src=&q ...
- 转: HighCharts 详细使用及API文档说明
一.HighCharts开发说明: HighCharts开发实际上配置HighCharts每个部分,比如配置标题(title),副标题(subtitle)等,其中每个部分又有更细的参数配置,比如标题下 ...
- Highmaps网页图表教程之Highmaps第一个实例与图表构成
Highmaps网页图表教程之Highmaps第一个实例与图表构成 Highmaps第一个实例 下面我们来实现本教程的第一个Highmaps实例. [实例1-1:hellomap]下面来制作一个中国地 ...
- 网页图表Highcharts实践教程之标签组与载入动画
网页图表Highcharts实践教程之标签组与载入动画 Highcharts标签组 在图表的大部分元素都提供了标签功能.但很多时候,我们需要额外说明一些信息.这个时候借助原有的图表元素的标签功能就不 ...
- 网页图表Highcharts实践教程标之添加题副标题版权信息
网页图表Highcharts实践教程标之添加题副标题版权信息 Highcharts辅助元素 辅助元素图表的非必要元素,如标题.版权信息.标签.载入动态.它们不和图表数据发生关联,只是额外说明一些基本 ...
最新文章
- javascript --- 原生的拖拽功能实现
- java超出gc开销限制_超出了GC开销限制– Java堆分析
- facade 门面 php,php设计模式之门面(Facade)模式
- 2016美国计算机科学硕士,美国计算机科学硕士MS in Computer Science TOP10学校录取要求提醒...
- Android 8.0 学习(23)---recovery 流程分析
- 重定义 UIImagePickerController
- Android “Theme.AppCompat.Light”解决方法
- 关于EXCEL操作的问题
- 对我有利就契约,不利就废纸
- 群晖7.X关闭双重验证(OTP)的方法
- android app开机启动画面,Android-如何设置APP开机启动(图文)
- 第 2 课:KNX智能控制系统的接口 BCU 模块
- JS鼠标移入移出事件:onmouseover事件和onmouseout事件实例
- 公司内网openvpn部署,
- YOLOv7改进主干系列:首发结合最新 QARepVGG 升级Rep结构, 本文对其进行原创改进 QARepNeXt 结构,基于美团提出一种量化感知方法:再一次让 RepVGG 变得更好
- MySQL——创建存储过程和函数
- Linux虚拟网络基础——veth pair
- 稀疏表示和字典学习的简单理解
- 35岁失业了,我该何去何从怎么选择?
- 专题分纲目录 思维模型