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 教程 | 菜鳥教程(runoob.com)</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" stylex="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 教程 | 菜鳥教程(runoob.com)</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" stylex="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>
※v-for 循環語句
※jQuery UI API 類別-選擇器(Selectors)
TAG:程序員小新人學習 |