Highcharts Master Detail Chart不呈现第二个系列

时间:2013-11-27 09:57:42

标签: javascript jquery highcharts master-detail

我在设置主详细信息图表时遇到问题。最初,主图和细节图都绘制了线系列和误差条系列。但是,在主控制器上选择新范围时,仅在细节内绘制线条。 (虽然师父仍然画两个)

我添加了一个JSFiddle:http://jsfiddle.net/binpower93/za46Y/1/

我认为错误与Highcharts有关,虽然它可能是由以下代码块引起的:

selection: function (event) {
                    var extremesObject = event.xAxis[0],
                        min = extremesObject.min,
                        max = extremesObject.max,
                        detailData = [],
                        xAxis = this.xAxis[0];

                    // reverse engineer the last part of the data
                    jQuery.each(this.series, function (i, series) {
                        var data = [];
                        jQuery.each(series.data, function (i, point) {
                            if (point.x > min && point.x < max) {
                                data.push({
                                    x: point.x,
                                    y: point.y
                                });
                            }
                        });
                        detailData.push(data);
                    });

                    // move the plot bands to reflect the new detail span
                    xAxis.removePlotBand('mask-before');
                    xAxis.addPlotBand({
                        id: 'mask-before',
                        from: firstUTC,
                        to: min,
                        color: 'rgba(0, 0, 0, 0.2)'
                    });

                    xAxis.removePlotBand('mask-after');
                    xAxis.addPlotBand({
                        id: 'mask-after',
                        from: max,
                        to: lastUTC,
                        color: 'rgba(0, 0, 0, 0.2)'
                    });

                    jQuery.each(detailChart.series, function (i, series) {
                        detailChart.series[i].setData(detailData[i]);
                    });

                    return false;
                }
            }
        },

1 个答案:

答案 0 :(得分:0)

问题在于错误系列需要x / y /高/低值,而不仅仅是x / y。因此,在为第二个系列设置数据时,您需要计算一些NaN。

解决这个问题的简单方法:

                                data.push({
                                    x: point.x,
                                    y: point.y,
                                    high: point.high,
                                    low: point.low
                                });

固定示例:http://jsfiddle.net/za46Y/2/

小建议:当设置更多数据/添加更多点数或系列时,禁用重绘,并调用一次,如下所示:

                    jQuery.each(detailChart.series, function (i, series) {
                        series.setData(detailData[i], false);
                    });
                    detailChart.redraw();