У меня есть линейная диаграмма с несколькими осями y и двумя осями x, то есть временем и расстоянием. Я хотел бы отобразить диаграмму, позволяющую пользователю переключаться между двумя осями x. Я борюсь с тем, как определить диаграмму, чтобы она отображала xAxis как расстояние и попыталась установить порядковый номер в false на xAxis, используя категории, указав несколько xAxes и, похоже, не может взломать код. Рабочее решение должно создавать два графика, как в связанном изображении https://drive.google.com/file/d/0B5768Z0sc7d7TFBPVDExU1NXWHc/edit?usp=sharing (так как это мой первый пост, у меня нет репутации, чтобы опубликовать изображение здесь ...)Экран Highcharts alternate x axis
Вот несколько упрощенных фрагментов кода и связанных с ним jsFiddle для вашего прочтения.
$('#container').highcharts({
xAxis: {
categories: [2,4,6,8,12,16,22,24,32,36,44,56], // representing distance
ordinal: false
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}] });
Это производит равномерно распределенных Xaxis, где каждая категория элемент занимает одну позицию, т.е. нет «растяжения» серии данных вводится. http://jsfiddle.net/robertvizza/LLExL/2141/
$('#container').highcharts({
xAxis: {
ordinal: false
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
},{
data: [2,4,6,8,12,16,22,24,32,36,44,56], // representing distance
xAxis: 0
}] });
Это показывает две серии по равноотстоящих значений XAxis (jsFiddle является 2142 - опять же, первое сообщение и, следовательно, могут размещать только 2 ссылки ...).
Я надеюсь, что Highcharts может управлять этим так как я ненавижу необходимость пересчета всех точек данных, чтобы подделать отображение через два разных xAxes ... Спасибо заранее за вашу помощь.
Большое спасибо @wergeld. Это, безусловно, поможет, когда я получу код переключения. Однако проблема, с которой я сталкиваюсь, предшествует этому. Кажется, я не могу создать граф с осью x, который не увеличивается на 1 и правильно масштабирует данные серии. Смотрите свою скрипку, измененную здесь http://jsfiddle.net/robertvizza/eyTEp/5/. Обратите внимание, как график скорости и расстояния просто меняет одну ось x для другой, не «растягивая» серию. В этом примере я хотел бы, чтобы на оси x было 56 точек, которые заменяли 12 из графика скорости и секунд. Спасибо –
@RobertVizza, что вы просите, не совсем понятно. Основываясь на вашем изображении вашей рисованной диаграммы, вы делаете то, что хотите - обе диаграммы имеют одинаковую ширину xAxis. Я не знаю, что вы подразумеваете под «растяжкой». Можете ли вы поставить скрипку на диаграмме 1 и диаграмме 2 с тем, как вы хотели бы, чтобы они были? – wergeld
Уверенная вещь @wergeld. Я понял, как заставить диаграммы выглядеть так, как я хочу, однако мне пришлось изменить формат данных, чего я бы предпочел не делать. Первая скрипка показывает данные, основанные на времени, скажем, http://jsfiddle.net/robertvizza/LLExL/2147/. И вторая скрипка показывает данные, основанные на расстоянии http://jsfiddle.net/robertvizza/LLExL/2148/. Это работает, но я получаю разные серии (время, расстояние и другие yAxes) отдельно от сервера, и поэтому я надеялся не платить штраф за исполнение, чтобы объединить их вместе, как в скрипках ... Что бы вы порекомендовали ? –