我尝试使用一个系列绘制列类型的图表。数据可以是正面的也可以是负面的。我尝试通过一次单击更新大于0(或小于0)的点的颜色。使用以下示例:
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'column'
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
plotOptions: {
series: {
cursor: 'pointer',
point: {
events: {
click: function() {
for (var i = 0; i < this.series.data.length; i++) {
if (this.y < 0) {
if (this.series.data[i].y < 0)
this.series.data[i].update({ color: '#ECB631' }, false, false);
}else {
if (this.series.data[i].y > 0)
this.series.data[i].update({ color: '#ECB631' }, false, false);
}
}
}
}
}
}
},
series: [{
data: [29.9, -71.5, 106.4, -129.2, 144.0, 176.0, -135.6, 148.5, -216.4, 194.1, 95.6, 54.4],
negativeColor: '#FF0000'
}]
});
这是the link。 http://jsfiddle.net/CkkbF/57/
我发现了一些有趣而奇怪的东西:
如果点数据为正数,则单击的列颜色将会更改,但其他具有正数据的列的颜色会略有不同(似乎突出显示。)
如果点数据为负数,则单击的列颜色将保持不变(在我的示例中为红色),直到您将鼠标移出它。除非您尝试将鼠标放入/取出,否则其他具有负数据的列保持不变。
可能是个错误?如何正确更新它们?
答案 0 :(得分:1)
我想你要更新系列颜色,或者系列negativeColor,看看:http://jsfiddle.net/CkkbF/60/
plotOptions: {
series: {
cursor: 'pointer',
point: {
events: {
click: function () {
if (this.y > 0) {
this.series.update({
color: "#ECB631"
});
} else {
this.series.update({
negativeColor: "#ECB631"
});
}
}
}
}
}
},