Задача в построении матплотлиба по осям с твиксом - PullRequest
0 голосов
/ 23 января 2020

Я новичок в matplotlib. Я пишу приложение для фондового рынка в Python.

В приложении у меня есть график с 2 различными линейными графиками для отображения. Одним из них является «Цена», а другим - «Индикатор VVAP». Я пытаюсь построить его с помощью функции matplotlib twinx (), чтобы они оба имели одну и ту же ось X.

Проблема в том, что набор данных цен имеет длину 100, а индикатор VVAP "Набор данных имеет длину всего 1 (он увеличится до 100 при получении новых данных с сервера и вычислении).

Вот мой код:

 self.figure, ax1 = plt.subplots()
 ax1.plot(prices_dataframe, 'b-')
 ax2 = ax1.twinx()
 ax2.plot(vwaps_dataframe, 'r-')
 plt.autoscale(enable=True, axis='x')
 plt.title("Intraday with VWAP")
 plt.grid()
 helper.chart_figure = self.figure

Вот наборы данных :

enter image description here

И вот что я получаю на графиках:

enter image description here

Как мне это решить? Нужно ли дополнять второй набор данных фиктивными строками? Или есть более простое и элегантное решение моей проблемы? Любая помощь будет оценена.

Заранее спасибо.

1 Ответ

0 голосов
/ 23 января 2020

Я нашел решение проблемы в образе набора данных:

enter image description here

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

Мне также пришлось добавить следующие строки, чтобы ось x отображала правильное время в моем часовом поясе:

ax1.xaxis_date(tz='Asia/Kolkata')
ax2.xaxis_date(tz='Asia/Kolkata')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...