我遇到一個問題,如何動態更新plotlines(on YAxis)?具體來說,我需要計算圖表一段時間內的最大值,最小值和平均值,然後設置它們代表的3條線。我怎樣才能做到這一點? 非常感謝!highcharts動態劇情
-1
A
回答
0
這是一個非常簡單的動態更新圖表的例子。
- 它有一個數據系列,可以通過按下按鈕來更新。
- 按下第二個按鈕時,根據系列的數據,繪圖將被添加或刪除+重新繪製。
- 如果要使用數據點的子集,請隨意相應地使用函數
getKPIByData
或更改data
參數。
http://jsfiddle.net/hsL4pwsh/12/
;$(function() {
var curActiveData = 1;
var addedPlotlines = false;
var data1 = [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4];
var data2 = [31.9, 73.5, 117.4, 29.2, 109.0, 181.0, 212.6, 137.5, 225.4, 199.1, 91.6, 11.4];
var getKPIByData = function(data) {
function getMaxOfArray(numArray) {
return Math.max.apply(null, numArray);
}
function getMinOfArray(numArray) {
return Math.min.apply(null, numArray);
}
var minRate,
maxRate = 0,
rate,
i,
avgRate,
totalRate = 0;
for (i = 0; i < data.length; i++) {
totalRate += data[i];
}
return {
minRate: getMinOfArray(data),
maxRate: getMaxOfArray(data),
avgRate: totalRate/data.length
};
};
$('#container').highcharts({
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
},
series: [{
data: data1
}]
});
// the button action
var $button1 = $('#addPlotlines'),
$button2 = $('#updatePlotlines'),
chart = $('#container').highcharts();
$button1.on("click", function() {
var curData = [];
for (var i = 0; i < chart.series[0].data.length; i++) {
curData[curData.length] = chart.series[0].data[i].y;
}
var result = getKPIByData(curData);
if (addedPlotlines) {
chart.yAxis[0].removePlotLine('min');
chart.yAxis[0].removePlotLine('max');
chart.yAxis[0].removePlotLine('avg');
}
chart.yAxis[0].addPlotLine({
color: 'green',
width: 2,
id: "min",
value: result.minRate
});
chart.yAxis[0].addPlotLine({
color: 'red',
width: 2,
id: "max",
value: result.maxRate
});
chart.yAxis[0].addPlotLine({
color: 'blue',
width: 2,
id: "avg",
value: result.avgRate
});
addedPlotlines = true;
});
$button2.on("click", function() {
var newActive = (curActiveData == 1) ? 2 : 1;
console.log(newActive);
chart.series[0].update({
data: (newActive == 1) ? data1 : data2
});
curActiveData = newActive;
});
});
+0
感謝您的回答。但我想要做的是更新動態圖中的情節,不需要按鈕更新 –
+0
通過使用按鈕,我只是試圖演示必要的功能。隨意使用任何事件處理程序而不是按鈕點擊來調用這些函數,即'addPlotline()'和'removePlotline()'。 KPI計算(最小,最大,平均)也可以根據您的需要進行調整。 – nilsole
+0
讓我體貼,非常感謝〜 –
相關問題
- 1. Highcharts劇情樂隊動畫
- 2. Highcharts - 劇情標籤後面的隱藏劇情線
- 3. Highcharts:更改劇情區域的光標
- 4. Highcharts區域範圍劇情rCharts
- 5. 互動劇情
- 6. Android動態劇情使用Achartengine
- 7. 動畫劇情MATLAB
- 8. 動畫劇情更新
- 9. 支線劇情,劇情無厘頭
- 10. Python:劇情在scipy劇情之上? (voronoi)
- 11. 核心 - 劇情:個性化劇情
- 12. Highcharts未定義動態highcharts
- 13. Highcharts - Click事件不觸發劇情區域外
- 14. 劇情繫列,無法排序避免Highcharts錯誤15
- 15. 在劇情和圖形之間填充Highcharts,如何刪除?
- 16. 劇情值
- 17. 與Android劇情
- 18. 劇情值
- 19. 劇情時間
- 20. BeamDeflection劇情
- 21. Highcharts動態燭臺
- 22. Highcharts動態數據
- 23. JFreeChart動態xy劇情在Java swing gui應用程序
- 24. 3D情節劇情 - R
- 25. 劇情ř矢量
- 26. python劇情問題
- 27. -Python劇情代碼
- 28. 劇情上在Matlab
- 29. 劇情用線條
- 30. 劇情矢量場
http://api.highcharts.com/highcharts/Axis.addPlotLine; http://api.highcharts.com/highcharts/Axis.removePlotLine – nilsole
使用下面的這些函數找到我的想法。 – nilsole