2
我正在研究高圖上的動態圖表。我的問題是,有沒有方法在我的標籤上添加設計? 目前像這樣將設計添加到plotLabel Highcharts
而且我希望它看起來像這樣
這裏我的代碼
$(function() {
Highcharts.setOptions({
global: {
useUTC: false
}
});
// Create the chart
$('#container').highcharts('StockChart', {
chart: {
events: {
load: function() {
// set up the updating of the chart each second
var series = this.series[0],
hasPlotLine = false,
$button = $('#button'),
chart = $('#container').highcharts(),
yAxis = chart.yAxis[0],
plotLine,
d,
newY;
yAxis.addPlotLine({
value: 66,
color: 'red',
width: 2,
id: 'plot-line-1',
label: {
text: 66,
align: 'right',
y: newY,
x: 0
}
});
setInterval(function() {
var x = (new Date()).getTime(), // current time
y = Math.round(Math.random() * 100);
series.addPoint([x, y], true, true);
plotLine = yAxis.plotLinesAndBands[0].svgElem;
d = plotLine.d.split(' ');
newY = yAxis.toPixels(y) - d[2];
plotlabel = yAxis.plotLinesAndBands[0].label;
plotlabel.animate({
translateY: newY,
text: Highcharts.numberFormat(y, 2)
}, {
duration: 400,
step: function() {
$(this.element).html(Highcharts.numberFormat(this.textStr,2));
},
complete: function() { }
}),
plotLine.animate({
translateY: newY
}, 400);
}, 1000);
}
}
},
rangeSelector: {
buttons: [{
count: 1,
type: 'minute',
text: '1M'
}, {
count: 5,
type: 'minute',
text: '5M'
}, {
type: 'all',
text: 'All'
}],
inputEnabled: false,
selected: 0
},
title: {
text: 'Live random data'
},
yAxis: [{
opposite: false,
title: {
enabled: false
}
}],
exporting: {
enabled: false
},
series: [{
name: 'Random data',
data: (function() {
// generate an array of random data
var data = [],
time = (new Date()).getTime(),
i;
for (i = -999; i <= 0; i += 1) {
data.push([
time + i * 1000,
Math.round(Math.random() * 100)
]);
}
return data;
}())
}]
});
});
這裏是供你參考http://jsfiddle.net/t7x2jehn/我的工作代碼
謝謝你的回答,我想使它像一個'標註'而不是一個'矩形',但它似乎不在我身邊,是否有可能? – ampedo
我覺得你做的比我在情節線上做的動畫要好得多,我打算在情節線上刪除我的動畫 - 是否有任何方法可以在標籤上添加情節使其成爲一個動畫功能? – ampedo
如果你想有一個標註,那麼你需要設置anchorX,anchorY的位置,它應該指向繪圖線上的某個點。你可以通過attr({anchorX,anchorY})來設置它。對於第二條評論,通過製作一個有生命的函數意味着什麼? – morganfree