Как установить высоту точки на оси Y для конкретной серии - PullRequest
0 голосов
/ 11 июля 2019

У меня есть случай с Highcharts (тип xrange), когда мне нужно уменьшить высоту точек, когда для нее нет серии. На изображении https://imgur.com/MNZbved нет данных для точек W, S и S по оси Y. И высота должна быть ниже для таких случаев. Я понятия не имею, как реализовать такое поведение

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

Вы можете использовать модуль 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

0 голосов
/ 11 июля 2019

Попробуйте:

 yAxis: {
        gridLineWidth: 0
    },

JSFiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...