Highchart plotLines z系列z索引之间的索引

时间:2015-03-20 13:16:09

标签: javascript jquery highcharts

我正在尝试创建一个小提琴,模拟附加的图像enter image description here

跟随jsfiddle

http://jsfiddle.net/2TuCW/162/

问题是我想要蓝线和绿柱之间的plotLines。  我尝试在后面的小提琴中更改plotLines(10)的zIndexes,蓝线(15)和绿柱(5)之间 http://jsfiddle.net/2TuCW/163/

//plotLines zIndex
"plotLines" : [
        {
            "color": '#E5E7EB',
            "zIndex": 10,
            "width":    2,
            "value": 20 

        },

....
....
//Series data z-index 
    "series": [{
        "type":"column",
        "data": [35,39,49,50,57,58],
        "zIndex":5 
        ....
        ....
    "series": [{
        "type":"line",
        "data": [35,39,49,50,57,58],
        "zIndex":15 

但它没有按预期工作。请建议如何实现它。

4 个答案:

答案 0 :(得分:1)

事实上,所有系列都具有相同的zIndex。

相关主题:https://github.com/highslide-software/highcharts.com/issues/3321

答案 1 :(得分:0)

尝试调整plotLines的值。

如果您希望绘图线位于蓝线和绿列之间,则plotLines的值必须介于蓝线数据和列数据之间。

答案 2 :(得分:0)

不幸的是,plotLines似乎可以位于所有系列之前或所有系列之后。这是因为所有系列都归为一个共同的元素。 plotLine元素是group元素的兄弟元素,而不是单个元素元素的兄弟元素。

答案 3 :(得分:0)

此问题与以下事实有关:所有系列均绘制在同一组中,因此具有与其他组相关的相同z-index。 A related GitHub issue包含讨论和代码示例。

请参见TorsteinHønsi(Highcharts创作者)提出的this one example solution。我进行了修改,minimal, reproducible example here

/**
 * Plugin to allow plot band Z indexes in between series
 */
Highcharts.wrap(Highcharts.PlotLineOrBand.prototype, 'render', function (proceed) {
    var chart = this.axis.chart;

    proceed.call(this);

    if (!chart.seriesGroup) {
        chart.seriesGroup = chart.renderer.g('series-group')
            .attr({ zIndex: 3 })
            .add();
    }

    if (this.svgElem.parentGroup !== chart.seriesGroup) {
        this.svgElem
            .attr({ zIndex: this.options.zIndex })
            .add(chart.seriesGroup);
    }
    return this;
});

Highcharts.chart('container', {
    xAxis: {
        plotLines: [{
            color: 'red',
            width: 2,
            value: 3.5,
            zIndex: 10
        }]
    },
    series: [{
        data: [7988, 12169, 15112, 22452, 34400, 34227],
        zIndex: 9
    }, {
        data: [8105, 11248, 8989, 11816, 18274, 18111],
        zIndex: 11
    }]
});

代码使用Torsteins插件在系列之间允许绘图线。有关注意事项和潜在改进的讨论,请参见GitHub问题。