Как рассчитать максимальную высоту в зависимости от ширины баров на графике - PullRequest
0 голосов
/ 02 января 2019

Глядя на лучший способ установить свойство высоты диаграммы, используя гистограмму высоких диаграмм.

В настоящее время я установил высоту диаграммы равной количеству категорий оси X, но не менее 400, используя:

this.resultsChartOptions.chart.height = ((categories.length * 50) > 400 ? categories.length * 50 : 400);

Это, однако, означает, что между барами есть перекрытия, особенно на больших графиках (поскольку легенда и другие элементы графика занимают место, которое я не учел).

Я установил точку по умолчанию pointWidthдо 50, и это самая широкая полоса - в идеале каждая категория будет иметь ширину 50, и график будет автоматически расширяться.

Кто-нибудь есть идеи, как это сделать?

1 Ответ

0 голосов
/ 02 января 2019

В load событии вы можете рассчитать и установить необходимую высоту с учетом всех элементов графика:

chart: {
    type: 'bar',
    height: 400,
    events: {
        load: function() {
            var categories = this.xAxis[0].tickPositions,
                plotHeight = categories.length * 50,
                chartHeight = plotHeight + (this.chartHeight - this.plotHeight);

            if (chartHeight > this.chartHeight) {
                this.setSize(null, chartHeight, false)
            }
        }
    }
}

Демонстрация в реальном времени: http://jsfiddle.net/BlackLabel/hkuLfogj/

Справочник по API: https://api.highcharts.com/class-reference/Highcharts.Chart#setSize

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