Highcharts 动态图

我们将为大家介绍 Highcharts 的动态图。

我们在前面已经了解了 Highcharts 配置语法。接下来让我们来看下 Highcharts 的其他配置。


每秒更新曲线图

chart.events

chart.event 属性中添加 load 方法(图表加载事件)。在 1000 毫秒内随机产生数据点并生成图表。

chart: {
 events: {
 load: function () {
 // 图表每秒更新一次
 var series = this.series[0];
 setInterval(function () {
 var x = (new Date()).getTime(), // 当期时间
 y = Math.random();
 series.addPoint([x, y], true, true);
 }, 1000);
 }
 }}

实例

文件名:highcharts_dynamic_spline.htm

<html><head><meta charset="UTF-8" /><title>Highcharts 教程 | 菜鸟教程(eruiyi.cn)</title><script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script><script src="http://code.highcharts.com/highcharts.js"></script></head><body><div id="container" style="width: 550px; height: 400px; margin: 0 auto"></div><script language="JavaScript">$(document).ready(function() { 
 var chart = {
 type: 'spline', animation: Highcharts.svg, // don't animate in IE < IE 10.
 marginRight: 10, events: {
 load: function () {
 // set up the updating of the chart each second
 var series = this.series[0];
 setInterval(function () {
 var x = (new Date()).getTime(), // current time
 y = Math.random();
 series.addPoint([x, y], true, true);
 }, 1000);
 }
 }
 };
 var title = {
 text: 'Live random data' 
 }; 
 var xAxis = {
 type: 'datetime',
 tickPixelInterval: 150
 };
 var yAxis = {
 title: {
 text: 'Value'
 },
 plotLines: [{
 value: 0,
 width: 1,
 color: '#808080'
 }]
 };
 var tooltip = {
 formatter: function () {
 return '<b>' + this.series.name + '</b><br/>' +
 Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' +
 Highcharts.numberFormat(this.y, 2);
 }
 };
 var plotOptions = {
 area: {
 pointStart: 1940,
 marker: {
 enabled: false,
 symbol: 'circle',
 radius: 2,
 states: {
 hover: {
 enabled: true
 }
 }
 }
 }
 };
 var legend = {
 enabled: false
 };
 var exporting = {
 enabled: false
 };
 var series= [{
 name: 'Random data',
 data: (function () {
 // generate an array of random data
 var data = [],time = (new Date()).getTime(),i;
 for (i = -19; i <= 0; i += 1) {
 data.push({
 x: time + i * 1000,
 y: Math.random()
 });
 }
 return data;
 }()) 
 }]; 
 var json = {}; 
 json.chart = chart;
 json.title = title; 
 json.tooltip = tooltip;
 json.xAxis = xAxis;
 json.yAxis = yAxis;
 json.legend = legend; 
 json.exporting = exporting; 
 json.series = series;
 json.plotOptions = plotOptions;
 Highcharts.setOptions({
 global: {
 useUTC: false
 }
 });
 $('#container').highcharts(json);
 });</script></body></html>

Highcharts 饼图


通过点击添加数据

chart.events

在 chart.event 属性中添加 click 方法(整个图表的绘图区上所发生的点击事件)。该方法在图表绘图区上发生点击时会添加新的数据点。

chart: {
 events: {
 click: function (e) {
 // 获取点击坐标和数据项
 var x = e.xAxis[0].value,
 y = e.yAxis[0].value,
 series = this.series[0];
 // 添加点击的坐标
 series.addPoint([x, y]);
 }
 }}

实例

文件名:highcharts_dynamic_click.htm

<html><head><title>Highcharts 教程 | 菜鸟教程(eruiyi.cn)</title>
 <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
 <script src="/try/demo_source/highcharts.js"></script></head><body><div id="container" style="width: 550px; height: 400px; margin: 0 auto"></div><script language="JavaScript">$(document).ready(function() { 
 var chart = {
 type: 'scatter', margin: [70, 50, 60, 80], events: {
 click: function (e) {
 // find the clicked values and the series
 var x = e.xAxis[0].value,
 y = e.yAxis[0].value,
 series = this.series[0];
 // Add it
 series.addPoint([x, y]);
 }
 }
 };
 var title = {
 text: 'User supplied data' 
 }; 
 var subtitle = {
 text: 'Click the plot area to add a point. Click a point to remove it.'
 };
 var xAxis = {
 gridLineWidth: 1,
 minPadding: 0.2,
 maxPadding: 0.2,
 maxZoom: 60
 };
 var yAxis = {
 title: {
 text: 'Value'
 }, minPadding: 0.2,
 maxPadding: 0.2,
 maxZoom: 60,
 plotLines: [{
 value: 0,
 width: 1,
 color: '#808080'
 }]
 }; 
 var legend = {
 enabled: false
 };
 var exporting = {
 enabled: false
 };
 var plotOptions = {
 series: {
 lineWidth: 1,
 point: {
 events: {
 'click': function () {
 if (this.series.data.length > 1) {
 this.remove();
 }
 }
 }
 }
 }
 }; var series= [{
 data: [[20, 20], [80, 80]]
 }]; 
 var json = {}; 
 json.chart = chart;
 json.title = title; 
 json.subtitle = subtitle;
 json.xAxis = xAxis;
 json.yAxis = yAxis;
 json.legend = legend; 
 json.exporting = exporting; 
 json.series = series; 
 json.plotOptions = plotOptions; 
 $('#container').highcharts(json);
 });</script></body></html>

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

php编程基础教程.pptx|php编程培训,php,编程,基础,教程,pptx
php编程基础教程.pptx

历史上的今天:04月20日

ThinkPHP5快速入门基础

ThinkPHP5快速入门基础一、基础快速入门 ( 一 ) :基础本章介绍了 ThinkPHP5 .0 的安装及基本使用 ,并给出了一个最简单的示例带你了解如何开始开发 ,主要包 含 :简介官网下载 omposer安装和更新CGit下载和更新目录结构运行环境入口文件调试模式控制器视图读取数据总结在学习 ThinkPHP5.0 之前 ,如果你还不理解面向对象和命名空间的概念 ,建议首先去PHP手册恶

ThinkPHP5快速入门

ThinkPHP5快速入门目 录零、序言一、基础二、URL和路由三、请求和响应四、数据库五、查询语言六、模型和关联 (1)模型定义 (2)基础操作 (3)读取器和修改器 (4)类型转换和自动完成 (5)查询范围 (6)输入和验证 (7)关联 (8)模型输出七、视图和模板八、调试和日志九、API开发十、命令行工具十一、扩展十二、杂项SessionCookie验证

热门专题

云南开放大学|云南开放大学报名,云南开放大学报考,云南开放大学,什么是云南开放大学,云南开放大学学历,云南开放大学学费,云南开放大学报名条件,云南开放大学报名时间,云南开放大学学历,云南开放大学专业
云南开放大学
安徽中源管业|安徽中源管业,安徽中源管业mpp电力管,安徽中源管业cpvc电力管,安徽中源管业pe穿线管,安徽中源管业电力管,安徽中源管业排水管,安徽中源管业通信管,安徽中源管业管材
安徽中源管业
中源管业|中源管业,中源管业公司,中源管业有限公司,中源管业电话,中源管业地址,中源管业电力管,中源管业mpp电力管,中源管业cpvc电力管,中源管业pe穿线管
中源管业
国家开放大学|国家开放大学报名,国家开放大学报考,国家开放大学,什么是国家开放大学,国家开放大学学历,国家开放大学学费,国家开放大学报名条件,国家开放大学报名时间,国家开放大学学历,国家开放大学专业
国家开放大学
APP开发|app开发_app开发公司_app软件开发_专业app开发_云南app开发公司_app定制_原生app开发定制
APP开发
易捷尔高职单招|易捷尔高职单招,易捷尔高职单招培训,单招分数线,单招录取分数线,高职单招学校分数线
易捷尔高职单招
开放大学|开放大学报名,开放大学报考,开放大学,什么是开放大学,开放大学学历,开放大学学费,开放大学报名条件,开放大学报名时间,开放大学学历,开放大学专业
开放大学
大理科技管理学校|大理科技管理学校,大理科技,大理科技中等职业技术学校,大理科技管理中等职业技术学校,大理科技学校
大理科技管理学校

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部