【问题标题】:Highcharts second series name labeled to 'Series 2'?Highcharts 第二个系列名称标记为“系列 2”?
【发布时间】:2017-05-04 08:18:03
【问题描述】:

一周前刚开始学习和使用 Highcharts。在我的应用程序中,用户从列表框中选择一个键值,然后从该键中检索一个值数组,并使用这些数据创建多个系列的折线图。在下面的屏幕截图中,第一个系列(浅蓝色)的名称为 CDEP158,而在第二个系列(黑色)中,系列名称不应为“系列 2”,而应为 CDT158。第二个系列的“系列 2”是这里的问题。

这是图表数据准备代码,它接受来自点击事件中调用的 jquery post 回调函数的dataChart(结果)。

    function prepareChartData(dataChart)
{
    var dataSeries = [];
    var xTitle;

    for (var i = 0; i < dataChart.length; i++) {
        var items = dataChart[i];
        var xDate = +moment(items.Time);
        var seriesData = parseFloat(items.Value);

        dataSeries.push([xDate, seriesData]);
        xTitle = items.Name;
    }

    if (aeChart === undefined || aeChart === null)
    {
        plotChartData(dataSeries, xTitle);
        return;
    }

    aeChart.addSeries({
        title: xTitle,
        data: dataSeries
    });
};

创建 Highchart 的新实例及其配置的函数

    function plotChartData(dataseries, xtitle)
{
    aeChart = new Highcharts.Chart({
        chart: {
            renderTo: 'svgtrendspace',
            type: 'line',
            zoomType: 'xy',
            panning: true,
            panKey: 'shift',
            plotBorderWidth: 1
        },
        title: {
            text: ''
        },
        legend: {
            layout: 'horizontal',
            align: 'left',
            itemDistance: 10,
            borderWidth: 0,
            itemMarginTop: 0,
            itemMarginBottom: 0,
            padding: 20
        },
        plotOptions: {
            series: {
                states: {
                    hover: {
                        enabled: false
                    }
                },
                dataLabels: {
                    enabled: false,
                    format: '{y}'
                },
                allowPointSelect: false
            }
        },
        xAxis: {
            type: 'datetime',
            labels: {
                rotation: -65,
                style: {
                    fontSize: '9px',
                    fontFamily: 'Verdana, sans-serif'
                }
            }
        },
        yAxis: {
            gridLineColor: '#DDDDDD',
            gridLineWidth: 0.5
        },
        series: [{
            name: xtitle,
            data: dataseries,
            tooltip: {
                pointFormat: '{series.name}: <b>{point.y}</b><br/>',
                valueDecimals: 2
            }
        }]
    });
};

为什么第一个系列的名称正确,而第二个却没有?我的highcharts配置错了吗?我应该如何正确配置或格式化它来解决这个问题?

我已经用谷歌搜索了与多个系列相关的类似问题,但我找不到任何可以帮助我的类似问题或答案。

非常感谢任何帮助。

【问题讨论】:

    标签: javascript jquery highcharts


    【解决方案1】:

    它适用于第一个系列的事实意味着问题不在于您的代码,而在于您的 init。

    您能否在上述函数中调用aeChart.addSeries() 之前放置一个console.log('Title: ' + xTitle); 语句来检查您传入的内容?我怀疑第二个系列没有通过标题,因此 HighCharts 将其放入 Series2。

    也许您不应该在初始 for 循环的每次迭代中都设置 xTitle 的值?

    【讨论】:

    • 这是一个很好的建议,我将查看console.logxTitle 值。而且,我意识到addSeries() 选项title 属性应该是name。我认为这是真正的问题。但是,我会先更改脚本并运行我的应用程序来确认。
    • 是的,将 title 更改为 name ;)
    • @PawełFus,它现在可以工作了。该系列的实际名称现在可以正确显示。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2013-05-25
    • 2016-10-15
    相关资源
    最近更新 更多