Несколько осей Y для категорий графа столбцов в старших диаграммах

Я столкнулся с небольшой проблемой. Я пытаюсь сделать граф столбцов, как этот, используя высокие диаграммы: http://www.highcharts.com/demo/column-basic

Отдельные серии: весна, лето, осень и зима, и в качестве категорий я использую различные вариации, такие как влажность воздуха, давление и т. Д. Теперь проблема в том, что я хотел использовать несколько осей Y, потому что, очевидно, влажность, например, колеблется от 0 до 100, давление составляет около 1000, и они также имеют разные единицы. В документации я обнаружил, что можно установить несколько осей, но проблема в том, что он показывает только то, как указать ось для каждой серии. В этом случае, однако, я, очевидно, не хочу отдельных осей для ряда (влажность похожа на весну, лето и т. Д.), Но я хочу разные оси для отдельных категорий. Кто-нибудь знает, возможно ли это, и если как?

2 ответа

Да, это возможно, см. http://www.highcharts.com/demo/combo-multi-axes

Хитрость заключается в том, чтобы использовать yAxis в вашей серии, указав целое число. Как в приведенном выше примере:

series: [{
            name: 'Rainfall',
            color: '#4572A7',
            type: 'column',
            yAxis: 1,
            data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
            tooltip: {
                valueSuffix: ' mm'
            }

        }, {
            name: 'Sea-Level Pressure',
            type: 'spline',
            color: '#AA4643',
            yAxis: 2,
            data: [1016, 1016, 1015.9, 1015.5, 1012.3, 1009.5, 1009.6, 1010.2, 1013.1, 1016.9, 1018.2, 1016.7],
            marker: {
                enabled: false
            },
            dashStyle: 'shortdot',
            tooltip: {
                valueSuffix: ' mb'
            }

        }

Я нашел этот вопрос через другой недавно опубликованный (см. Сгруппированные гистограммы Highcharts с несколькими осями).

Короче говоря, да, у вас может быть столбчатая диаграмма, в которой определенные серии назначены различным осям Y. Вот пример использования требований в вопросе:

$(function () {
    $('#container').highcharts({

        chart: {
            type: 'column'
        },

        title: {
            text: 'Weather data'
        },

        xAxis: {
            categories: ['Spring','Summer','Fall','Winter']
        },

        yAxis: [{
            allowDecimals: false,
            min: 0,
            title: {
                text: 'Percent'
            }
        },{
            allowDecimals: false,
            min: 0, max: 1000,
            title: {
                text: 'Pressure'
            },
            opposite: true
        }],

        series: [{
            name: 'Humidity',
            data: [10, 50, 30, 5]
        }, {
            name: 'Barometric pressure',
            data: [550, 740, 655, 800],
            yAxis: 1
        }]
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>

<div id="container" style="min-width: 310px; height: 250px; margin: 0 auto"></div>

Я надеюсь, что это полезно для пользователей, которые сталкиваются с этим сообщением.

$(function () {
    $('#container').highcharts({

        chart: {
            type: 'column'
        },

        title: {
            text: 'Weather data'
        },

        xAxis: {
            categories: ['Spring','Summer','Fall','Winter']
        },

        yAxis: [{
            allowDecimals: false,
            min: 0,
            title: {
                text: 'Percent'
            }
        },{
            allowDecimals: false,
            min: 0, max: 1000,
            title: {
                text: 'Pressure'
            },
            opposite: true
        }],

        series: [{
            name: 'Humidity',
            data: [10, 50, 30, 5]
        }, {
            name: 'Barometric pressure',
            data: [550, 740, 655, 800],
            yAxis: 1
        }]
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>

<div id="container" style="min-width: 310px; height: 250px; margin: 0 auto"></div>

Другие вопросы по тегам