Highcharts - показывать все остальные категории по оси X - PullRequest
17 голосов
/ 15 сентября 2010

У меня есть Highcharts для отображения графика с кучей категорий xAxis.Это все работает нормально, но я хотел бы иметь возможность пропустить некоторые категории xAxis, так что не все из них отображаются.Вы можете увидеть пример этой работы в разделе отчетов Campaign Monitor (скриншот: http://screencast.com/t/Y2FjNzQ4Y).

Есть идеи, как мне добиться такого же макета?

Ответы [ 4 ]

41 голосов
/ 25 января 2013

Похоже, что для достижения этой цели следует использовать значение xAxis: label: step:

        xAxis: {
            categories: ['JAN', 'FEB', 'MAR', 'APR', 'MAY'],
            labels:{
                step: 2 // this will show every second label
            }
        },

Метки оси шага

Очень поздно, но я думаю, это может кому-нибудь помочь.

5 голосов
/ 28 октября 2011
    xAxis: {
        categories: categoriesname,
        labels: {
            style: {
                color: '#000',
                font: '9px Trebuchet MS, Verdana, sans-serif'
            }
        },
        **tickInterval: TickInterval,**// SET THIS
        tickPixelInterval: 80,
        tickmarkPlacement: 'on'
    },
4 голосов
/ 21 сентября 2010

Вы можете установить тип xAxis как «datetime», затем установить pointInterval и PointStart в plotoptions.

Пример кода:

var chart;
$(document).ready(function () {
    chart = new Highcharts.Chart({
        "xAxis": {
            "type": "datetime"

        "plotOptions": {
            "line": {
                "pointInterval": 86400000,
                "pointStart": 1282408923000
            }
        },
    });
});

Значения, которые вы видите для pointInterval и Start, приведены в миллисекундах, которые вы можете сгенерировать с помощью getTime () В вашем случае интервал будет 86400000ms, что составляет один день. Библиотека отображает соответствующие интервалы на основе вашего интервала данных.

0 голосов
/ 22 апреля 2011

вот мое уродливое решение:)

Я использую массив в качестве очереди.http://javascript.about.com/library/blqueue.htm если вы заполняете точечные данные в очереди, вы можете установить данные для своей серии графиков.

var myQueue = new Array();
var myPoint = [x, y];                                       myQueue.push(myPoint);
chart.series[0].setData(myQueue);

my X axis is not a datetime, it's an integer
first 
var x = 0;

Значение x должно всегда увеличиваться, когда вам нужна новая точка.http://dl.dropbox.com/u/3482121/picture/highcharts/PM/Screenshot.png

...