我正在寻找一种方法来访问图形实际svg对象上的每个点,以便即时更改其某些属性。
假设我有100个对象,其中大约50%的对象需要以不同的颜色绘制(尽管它们属于相同的数据系列,不可能是圆形)。因此,通过使用:
chart.series[0].points
我可以修改对象属性(比如填充),但之后无法重绘图表。使用chart.redraw()什么都没有,实际上它改变了点颜色,但只有在我鼠标悬停它们之后,图表本身才能正确重绘。
任何帮助表示感谢。
问候!
答案 0 :(得分:1)
至少有两种方法可以在这里使用。
加载
您可以在将每个点添加到数据数组时明确定义每个点的颜色。以下是文档陈述的内容
具有命名值的对象列表。在这种情况下,对象是点配置对象,如下所示。
范围系列值由低和高给出。 例如:
data: [{
name: 'Point 1',
color: '#00FF00',
y: 0
}, {
name: 'Point 2',
color: '#FF00FF',
y: 5
}]
参考:http://api.highcharts.com/highcharts#series.data
jsFiddle @ http://jsfiddle.net/jugal/mXPPH/
<强>动态强>
您可以使用point.update()
方法将颜色/标记添加到各个点,如下所示,
var p = chart.series[0].points[l - 1];
p.update({
marker: {
symbol: 'square',
fillColor: "#A0F",
lineColor: "A0F0",
radius: 5
}
});
参考:http://api.highcharts.com/highcharts#Point.update%28%29
您可能还想查看我为此问题提供的类似答案@ Dynamically draw marker on last point in highcharts及其jsFiddle @ http://jsfiddle.net/jugal/zJZSx/