【问题标题】:Highcharts - Updating a chart's option after initial renderHighcharts - 在初始渲染后更新图表的选项
【发布时间】:2015-12-30 19:20:00
【问题描述】:

是否可以更新图表的选项(例如marginRight)并调用redraw() 以使该新值反映在图表中?或者是否需要为这些类型的更改创建图表的新实例?

我认为可能是后者,因为听起来在创建图表后只能更改数据或轴值。我看到了重绘状态的文档:

在对数据或轴极值进行更改后重新绘制图表

以及 3.0 状态下的新动态特性:

通过完整的 API,您可以在图表创建后随时添加、删除和修改系列和点或修改轴。

提前谢谢你。

更新

我想要这样做的原因是我有一个垂直布局和右对齐的图例与我的图表重叠。我刚刚意识到,如果没有明确指定,Highcharts 会自动设置正确的 marginRight 以适应这种情况。

【问题讨论】:

    标签: highcharts


    【解决方案1】:

    很遗憾你不能动态修改margin参数,所以你需要销毁旧图表并创建新实例。

    此功能是我们近期的目标之一。

    【讨论】:

    • 谢谢。通过设置Chart.optionsMarginRight 然后调用Chart.render(),我能够在不破坏旧图表的情况下完成此操作
    • @Sebastian 这件事你已经完成了吗?
    • @SebastianBochan 有什么更新吗?
    • 此时您可以调用chart.update() 方法,该方法允许您修改边距。文档:api.highcharts.com/highcharts/Chart.update
    【解决方案2】:

    假设你有一个这样初始化的图表:

    chart = new Highcharts.Chart({
        ...
    

    你可以改变一些琐碎的属性,比如它的标题,像这样:

    chart.setTitle({text: "New title"});
    

    您可以使用新的数据集刷新它正在使用的数据集,如下所示:

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

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

    【讨论】:

    • 谢谢菲利普斯。我正在寻找一种方法来改变一个更微不足道的属性。没有特定方法的人。具体来说,有没有办法改变marginRight?我尝试在Chart.options 中修改它并调用redraw(),但这似乎不起作用。
    • 在这种情况下,您可能需要重建图表。检查这个问题:stackoverflow.com/questions/9661250/…
    猜你喜欢
    • 1970-01-01
    • 2016-06-04
    • 2022-11-22
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多