如何为特定系列在Y轴上设置点高

时间:2019-07-11 13:12:25

标签: javascript highcharts

我有一个Highcharts(xrange类型)的案例,当我没有序列时需要降低点的高度时。在图像https://imgur.com/MNZbved上,Y轴上没有W,S和S点的任何数据。在这种情况下,其高度应更低。 我不知道如何实现这种行为

2 个答案:

答案 0 :(得分:0)

尝试:

 yAxis: {
        gridLineWidth: 0
    },

JSFiddle

答案 1 :(得分:0)

您可以使用broken-axis模块来创建不规则的类别宽度。当前,还需要更正标签位置:

chart: {
    type: 'xrange',
    events: {
        render: function() {
            var i = -1,
                tickPos,
                yAxis = this.yAxis[0],
                prevTickPos,
                categories = this.yAxis[0].categories;


            for (i; i < categories.length; i++) {
                if (i !== -1) {
                    tickPos = yAxis.ticks[i].mark.getBBox();
                    yAxis.ticks[i].label.attr({
                        y: tickPos.y - (tickPos.y - prevTickPos.y) /
                            2 + yAxis.ticks[i].label.getBBox().height / 2
                    });
                }

                prevTickPos = tickPos || yAxis.ticks[i].mark.getBBox();
            }
        }
    }
},
yAxis: {
    ...,
    tickWidth: 1,
    breaks: [{
        from: 1,
        to: 2,
        breakSize: 0.5
    }]
},

实时演示: https://jsfiddle.net/BlackLabel/u28tmbh6/

API参考:

https://api.highcharts.com/highcharts/yAxis.breaks

https://api.highcharts.com/highcharts/chart.events.render