2016-01-21 5 views
0

Я хочу наложить две оси x datetime, которые не совпадают с одним и тем же параметром, но имеют одинаковое количество точек (индекс точки x из серии 1 должен быть рядом с индексом точки x из серии 2).Highcharts overlay multiple datetime series

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

В основном я работаю, но бары выравниваются только при определенных уровнях масштабирования.

Увеличенный-В:

enter image description here

Увеличенный-Out:

enter image description here

Here является jsfiddle с настройками я попытался:

"xAxis": [{ 
 
    tickInterval: 36e5, 
 
    "type": "datetime", 
 
    "dateTimeLabelFormats": { 
 
    "day": "%H" 
 
    }, 
 
    visible: false 
 
}, { 
 
    tickInterval: 36e5, 
 
    "type": "datetime", 
 
    "dateTimeLabelFormats": { 
 
    "day": "%H" 
 

 
    }, 
 
}

ответ

0

Решение от @pawel fus может работать в большинстве случаев, к сожалению, не для меня.

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

1

Я думаю, что вы хотите использовать категории - таким образом, вы будете получать очки оси равномерно разнесенных, посмотрите: http://jsfiddle.net/8wahvryx/2/

"xAxis": [{ 
    "type": "category", 
    labels: { 
    formatter: function() { 
     return Highcharts.dateFormat('%H:%M', this.value); 
    } 
    } 
}, { 
    "type": "category", 
    visible: false 
}] 

И если вы не хотите, чтобы изменить свой формат данных, вы может переопределить ключи массива (по умолчанию это [x, y]) для поддержки имен:

plotOptions: { 
    column: { 
    keys: ['name', 'y'] 
    } 
}, 

Примечания: в категоризированной оси, point.name используются в качестве названия категории ниже точки. Используйте xAxis.labels.formatter или xAxis.labels.format, чтобы изменить временные метки на часы.