Highcharts使用图表上的点进行操作

时间:2012-08-30 03:59:49

标签: svg highcharts

我正在寻找一种方法来访问图形实际svg对象上的每个点,以便即时更改其某些属性。

假设我有100个对象,其中大约50%的对象需要以不同的颜色绘制(尽管它们属于相同的数据系列,不可能是圆形)。因此,通过使用:

chart.series[0].points

我可以修改对象属性(比如填充),但之后无法重绘图表。使用chart.redraw()什么都没有,实际上它改变了点颜色,但只有在我鼠标悬停它们之后,图表本身才能正确重绘。

任何帮助表示感谢。

问候!

1 个答案:

答案 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/