Highstock 标记特定选项被忽略
Highstock marker specific option ignored
我想知道是否有办法将动态设置应用于 highstock 图表的单个标记?找了半天,感觉API有问题。似乎没有办法调整特定数据上的标记设置。例如:
$('#container').highcharts('StockChart', {
chart : {
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.round(Math.random() * 100);
series.addPoint([x, y], true, true);
}, 1000);
}
}
},
series : [{
data : (function () {
var data = [], time = (new Date()).getTime(), i;
for (i = -999; i <= 0; i += 1) {
data.push([
{ x: time + i * 1000,
y: Math.round(Math.random() * 100),
marker:{
fillColor:'red'
}
}
]);
}
return data;
}())
}]
}
我分叉了一个基本的 Highstock 演示来说明我的观点。请参阅演示问题的 jsfiddle:http://jsfiddle.net/9xj0nz72/1/
也许我的 fiddle 有错误...或者我可能必须在 Github 上创建问题?
非常感谢!!
我不得不在 addPoint
方法中分配样式,你不能只推送到 data
数组。你必须在 chart = new Highcharts.StockChart()
变量上使用它。
我很确定我使用以下方法得到了您希望的结果。为了演示,我为每个新点分配了随机颜色和半径。
$(function () {
var chart = new Highcharts.StockChart({
chart: {
renderTo: 'container'
},
plotOptions: {
series: {
marker: {
enabled: true
}
}
},
series: [{
name: 'Random data',
data: [],
time: (new Date()).getTime()
}]
});
/* add new random point every 1 second */
var i = 0;
setInterval(function () {
i++;
chart.series[0].addPoint({
marker: {
/* assign a random hex color and radius */
fillColor: '#' + (Math.random() * 0xFFFFFF << 0).toString(16),
radius: Math.floor(Math.random() * 10) + 1
},
y: Math.random() * 100,
x: i * 1000,
}, true, false);
}, 1000);
});
我想知道是否有办法将动态设置应用于 highstock 图表的单个标记?找了半天,感觉API有问题。似乎没有办法调整特定数据上的标记设置。例如:
$('#container').highcharts('StockChart', {
chart : {
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.round(Math.random() * 100);
series.addPoint([x, y], true, true);
}, 1000);
}
}
},
series : [{
data : (function () {
var data = [], time = (new Date()).getTime(), i;
for (i = -999; i <= 0; i += 1) {
data.push([
{ x: time + i * 1000,
y: Math.round(Math.random() * 100),
marker:{
fillColor:'red'
}
}
]);
}
return data;
}())
}]
}
我分叉了一个基本的 Highstock 演示来说明我的观点。请参阅演示问题的 jsfiddle:http://jsfiddle.net/9xj0nz72/1/
也许我的 fiddle 有错误...或者我可能必须在 Github 上创建问题?
非常感谢!!
我不得不在 addPoint
方法中分配样式,你不能只推送到 data
数组。你必须在 chart = new Highcharts.StockChart()
变量上使用它。
我很确定我使用以下方法得到了您希望的结果。为了演示,我为每个新点分配了随机颜色和半径。
$(function () {
var chart = new Highcharts.StockChart({
chart: {
renderTo: 'container'
},
plotOptions: {
series: {
marker: {
enabled: true
}
}
},
series: [{
name: 'Random data',
data: [],
time: (new Date()).getTime()
}]
});
/* add new random point every 1 second */
var i = 0;
setInterval(function () {
i++;
chart.series[0].addPoint({
marker: {
/* assign a random hex color and radius */
fillColor: '#' + (Math.random() * 0xFFFFFF << 0).toString(16),
radius: Math.floor(Math.random() * 10) + 1
},
y: Math.random() * 100,
x: i * 1000,
}, true, false);
}, 1000);
});