2015-04-28 3 views
1

Я экспериментирую с помощью высокоскоростных диаграмм, и есть одна вещь, которая имеет . Многие диаграммы имеют функциональность, и это необходимо, чтобы отобразить текущее представление, чтобы отображать только те данные, которые в настоящее время отображаются, чтобы соответствовать диаграмма.highstock, как предотвратить перемасштабирование диаграммы

Например, учитывая эти точки данных на большой период времени,:

[1, 50, 100, 1, 50, 100, 200 ] 

На графике будет отображаться сначала с масштабом скажем, 1 - 200.

Когда вы переместите диаграмму влево для просмотра старых данных, 200 получает из поля зрения, и граф получает пересчитаны в 1 - 100, а затем 1 - 50, а затем 1 - 1, то снова вырастает до 1 - 100.

проблемас этим должно быть очевидно. Если вы пытаетесь получить какое-либо представление о данных, прокручивая назад в истории, вы не можете этого сделать.

Хотя я согласен, что иногда желательно перемасштабировать, это не всегда так.

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

Я попытался установить reflow: false, но это не сработало.

Любые идеи о том, возможно ли это или нет?

Edit:

Вот скрипку, которая пытается установить показать некоторые из этих проблем, например:

https://jsfiddle.net/3Ld2zmum/1/

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

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

Проблема с перемасштабированием заключается в том, что высокая/низкая дата-точка автоматически увеличит все остальные данные, поэтому становится очень маленьким, если в наборе данных есть резкие отклонения от hugh.

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

После того, как мысль об этом, я понимаю, что единственный способ решить эту проблему было бы ввести какой-то свиток на оси у, так что, когда вы двигаться влево, вы на самом деле видеть только белое пространство.

Вам нужно будет вручную прокрутить страницу вниз, чтобы просмотреть данные. Таким образом, масштабирование не будет мешать действительному направлению данных, и вы не будете путать данные, которые могут изменить поток данных.

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

Имеет ли это смысл?

ответ

1

Чтобы остановить автоматическое масштабирование YAxis вы можете установить значение yAxis.min и yAxis.max так:

yAxis: { 
     min: 0, 
     max: 13000, 
     title: { 
      text: 'AAA' 
     } 
    }, 

Да, вам нужно будет установить какие-то значение максимального либо, зная заранее, что max должен быть или путем вычисления максимального значения данных и добавления какого-либо дополнения.

+0

Я мог бы поклясться, что пробовал это раньше, но теперь это действительно работает. Однако это создает другие проблемы. Когда вы перемещаетесь влево, вы не можете вручную изменить позицию y. В идеале в этой ситуации мне нужно либо прокрутить ось y, либо динамически настроить ymin и ymax по требованию. Можно ли динамически изменять эти значения после первого розыгрыша? – momomo

+0

Вы можете установить уровень масштабирования: http://api.highcharts.com/highcharts#chart.zoomType. Используйте 'y' или' xy'. – wergeld

+0

@momo, график уже «динамически регулирует ymin и ymax по требованию», когда вы не устанавливаете жесткий минимум/максимум. – wergeld

Смежные вопросы