Highcharts - 更新图表选项后的初始渲染

5
是否可以更新图表选项(例如marginRight)并调用redraw()以反映图表中的新值?还是需要创建一个新的图表实例来进行这些更改?
我认为可能是后者,因为听起来只有在创建图表之后可以更改数据或轴的值。我看到重绘文档说明:
重新绘制图表后,对数据或轴极值进行更改
新的动态特性3.0中说明:
通过完整的API,您可以在创建图表后随时添加、删除和修改系列和点,或修改轴。
预先感谢您。
更新
我想这样做的原因是我有一个竖直布局和右对齐的图例,它与我的图表重叠。我刚刚意识到如果没有明确指定,则Highcharts会自动设置正确的marginRight以适应此情况。
2个回答

4

很遗憾,您无法动态修改边距参数,因此您需要销毁旧图表并创建新实例。

这个功能是我们在不久的将来的目标之一。


谢谢。我通过设置 Chart.optionsMarginRight 并调用 Chart.render() 来完成此操作,而不会破坏旧图表。 - Irving
@Sebastian 这是你已经完成的事情吗? - Philip
@SebastianBochan 这方面有任何更新吗? - SE_User
此时您可以调用chart.update()方法,该方法允许您修改边距。文档:http://api.highcharts.com/highcharts/Chart.update - Sebastian Bochan

2
假设您已经初始化了一个图表,如下所示:

chart = new Highcharts.Chart({
    ...

您可以通过以下方式更改简单的属性,例如标题:
chart.setTitle({text: "New title"});

您可以使用新的数据集来刷新正在使用的数据集,方法如下:

chart.series[0].setData(newChartData, true);

新的ChartData将包含您希望显示的新数据数组。

谢谢Filippos。我正在寻找一种改变更微不足道的属性的方法。其中没有特定的方法来实现这一点。具体来说,有没有一种方法可以改变marginRight?我尝试在Chart.options中进行修改并调用redraw(),但似乎没有起作用。 - Irving
2
在这种情况下,您可能需要重构图表。请查看此问题:https://dev59.com/lmHVa4cB1Zd3GeqPmms5 - Filippos Karapetis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接