【问题标题】:Is there a way to update the legend to the value of a variable within the chart.events?有没有办法将图例更新为 chart.events 中变量的值?
【发布时间】:2020-01-07 11:55:25
【问题描述】:

我正在绘制一个随时间变化的 3D 折线图。每次循环结束时计数发生变化,都会为每个系列绘制一个新点。有没有办法在我的示例代码中将图例的值设置为 count 的值?该计数表示自实验开始以来的小时数,因此能够显示这一点是必要的。谢谢!

events: {
    load: function() {
        var thischart = this;
        for (i = 0; i < allpoints.length; i++) {
            thischart.addSeries({
                enableMouseTracking: false,
                lineWidth: 1,
                marker: {
                    enabled: false
                },
                data: [0, 0, 0]
            }, false)
            thischart.redraw(false);
        }
        setInterval(function() {

            if (count >= max_data_length) {
                if (!pause_at_end) {
                    for (i = 0; i < allpoints.length; i++) {
                        thischart.series[i + marker_series_length].setData([0, 0, 0], false);
                    }
                    thischart.redraw(false);
                    count = 1;
                } else {
                    is_paused = true;
                    document.getElementById('pauseit').value = "Unpause";
                }
            }
            if (!is_paused) {
                for (i = 0; i < allpoints.length; i++) {
                    if (allpoints[i].length > count) {
                        thischart.series[i + marker_series_length].addPoint([
                            allpoints[i][count][0], allpoints[i][count][2], allpoints[i][count][1]
                        ], false);
                    }
                }
                thischart.redraw(false);
                count = count + 4;
            }
        }, 10)
    }
}

【问题讨论】:

    标签: highcharts legend


    【解决方案1】:

    您可以使用series.update 方法设置新数据并更改图例中的系列名称:

    chart: {
        ...,
        events: {
            load: function() {
                var counter = 0,
                    series = this.series[0];
    
                setInterval(function() {
                    counter++;
    
                    series.update({
                        data: getRandomData(),
                        name: 'Name ' + counter
                    });
                }, 1000);
            }
        }
    }
    

    现场演示: https://jsfiddle.net/BlackLabel/7bq21tak/

    API 参考: https://api.highcharts.com/class-reference/Highcharts.Series#update

    【讨论】:

      【解决方案2】:

      感谢 ppotaczek!这为我指明了正确的方向。我使用 chart.update 来更新字幕。这是我使用的代码:

          chart.update({
                chart: {
                        inverted: false,
                        polar: false
                        },
                        subtitle: {
                        style: {
                        fontSize: '20px'
                                },
                        text:'Day:'+ countdays
                                }
                        });
      

      【讨论】:

        猜你喜欢
        • 2020-01-22
        • 1970-01-01
        • 2021-09-30
        • 2020-06-04
        • 2015-09-10
        • 2020-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多