Highcharts:更改选项后重绘图表

时间:2016-12-07 12:15:29

标签: javascript jquery highcharts

仅在更改选项后是否可以重绘图表?

IF rs = 1 Then

您可能会注意到我在plotOptions中控制系列,因为在同一个图表上会有多个系列。

 let options = {
            chart        : {
                renderTo: 'container',
                type    : 'line'
            },
            rangeSelector: {
                selected: 1
            },

            yAxis: {
                title: {
                    text: 'Number of downloads'
                }
            },

            xAxis: {
                type: 'datetime'
            },

            title: {
                text: 'Title'
            },


            series: undefined,

            plotOptions: {
                series: {
                    compare        : undefined,
                    showInNavigator: true
                }
            },


        };

然后我使用jquery来改变一些选项值:

// Data needs some preparation so I inject it separately, here:
options.series = seriesOptions( preparedData )

// This correctly plots the chart
let chart = new Highcharts.stockChart( options )

这没有任何作用。当我用新的Highcharts.stockChart(选项)'替换图表重绘时。它将工作并正确地重新创建图表与适当的选项。但我并不认为这是正确的方法,因为所有选项都被重置,特别是当数据系列随后被添加到图表中时,这很烦人。

那么如何正确触发redraw(),以便用新的选项值更新图表?

1 个答案:

答案 0 :(得分:2)

所以似乎有两种方法可以更新你在屏幕上看到的内容:

更新图表信息的简单图表更新,例如:

  chart.update(
                {
                    title: {
                        text: 'new text'
                    }
                }
            )

和系列更新,它更新数据本身,但保留您已有的数据,这样您就不必重新创建图表实例:

 let seriesMonth = {
                dataGrouping: {
                    forced: true,
                    units : [ [ 'month', [ 1 ] ] ]
                }
            }

 chart.series[ 0 ].update( seriesMonth );

通过使用其中一个或两个,一个人应该能够得到任何想要的结果。