Блог им. 3XTR

Нужна помощь кодера: в каком плоте нарисовать график?

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

Приведу пример:
Нужна помощь кодера: в каком плоте нарисовать график?


★1
17 комментариев
Excel
avatar
AlexeyTikhonov, в экселе нет даже банального масштабирования
avatar
Cristopher Robin, 
выбираете через фильтры в данных необходимый диапазон по времени (как в вашем примере) и график сам перерисовывается. Вот вам и масштабирование, просто немного иной интерфейс.
Дмитрий Овчинников, к сожалению на сколько либо рабочих объемах данных ваш эксель лопатка для песочницы вместо экскаватора.
avatar
Cristopher Robin, все там есть, правой кнопкой по оси, формат оси, выбираете диапазон, и все перестраивается
avatar
AlexeyTikhonov, говорю же, ваш эксель не потянет многомиллионные таблицы
avatar
В c# с этим LiveCharts справится
avatar
 А вообще, подозреваю, что почти любой :)
avatar

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

1. эмм… собственно, рисовать график.
2. считывать события на графике, а-ля поменять масштаб.
3. перерисовывать график.
4. масштабировать по вертикали (это вроде все умеют).

 

Может какой-нить Plotly или типа того.

avatar
Replikant_mih, как раз в Плотли такой фичи нет, либо я не нашел, что врядли. Причем, при масштабировании все равно ведь перерисовывется, не понятно почему такую вот опцию не предусмотрели.
avatar
Я бы matplotlib попробовал. Но насчет такого масштабирования не уверен. Что выделишь, то и отмасштабирует. А иначе как? Софтина угадывать что ли будет что ты там хотел? Вот пример кода, на всякий случай:
matplotlib.org/gallery/api/two_scales.html
avatar
tranquility, по сути дела я хотел лишь выбирать фрейм по оси икс, а вторую ось софтина должна оптимизировать сама, накладывая в два слоя. Довольно очевидная хотелка, не так ли?
avatar
Cristopher Robin, да вроде очевидная. Но еще более очевидно увеличивать ровно то место, которое выделил пользователь. Мне в теме где я кустаро свечки рисовал в matplotlib пару других альтернатив накидали, в которых есть специальные модули для визуализации финансовых данных. Может, в них такую хотелку удовлетворили? Еще, я бы поискал такое в графических пакетах для обработки сигналов. Может, в матлаб есть, Igor Pro…
P.S. Запустил пример по ссылке что прислал до этого. Да, разумеется, матплотлиб не делает автомасштабирование одному направлению, но зато после масштабирования выбранной области, ее можно двигать в любом направлении, что само по себе очень удобно. Я так, помню, дневные тиковые графики исследовать пытался когда-то)
avatar
tranquility, на Плотли есть виджеты и фичи. Море их. В крайнем случае можно даже написать самому, знать бы что прямого решения не существует.
avatar
Cristopher Robin, да вроде все возможно и в матплотлиб сделать, судя по тому, что можно колесико мыши прикрутить к окошку просмотра, то ничего не мешает взять текущую выделенную область, выбрать те данные которые соответствуют х координатам, найти минимум и максимум на соотв промежутке, добавить поля в пару процентов, ну и скорректировать вид.
stackoverflow.com/questions/11551049/matplotlib-plot-zooming-with-scroll-wheel
avatar
Амиброкер.



Все что вы хотите плюс все что вы ещё пока не хотите, но в процессе потребуется.
avatar
s_mike@rambler.ru, причем тут брокер?
avatar

теги блога Cristopher Robin

....все тэги



UPDONW
Новый дизайн