Минимальный предел просмотра Matplotlib меньше 1 с графиком с двумя разными масштабами - PullRequest
0 голосов
/ 16 июня 2020

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

# Create some mock data

fig, ax1 = plt.subplots()

color = 'tab:red'
ax1.set_xlabel('Liquidity')
ax1.set_ylabel('Price', color=color)
ax1.plot(orderbooks_hedged['topBid'], color=color)
ax1.plot(orderbooks_hedged['topAsk'], color=color)

ax1.tick_params(axis='y', labelcolor=color)

ax2 = ax1.twinx() 

color = 'tab:blue'
ax2.set_ylabel('sin', color=color)  # we already handled the x-label with ax1
ax2.plot(t, data2, color=color)

ax2.plot(orderbooks_hedged['topBidliquidity'], color=color)
ax2.plot(orderbooks_hedged['topAskliquidity'], color=color)

ax2.tick_params(axis='y', labelcolor=color)

fig.tight_layout()  # otherwise the right y-label is slightly clipped
plt.show()

И два моих разных столбца фрейма данных выглядят следующим образом:

                      topBid    topAsk  topBidliquidity topAskliquidity
ts              
2020-06-15 09:00:07 4.145097    4.170428    24.715769   35039.309622
2020-06-15 09:00:08 4.145097    4.170428    4944.701928 35039.309622
2020-06-15 09:00:09 4.144620    4.170428    4944.701928 35039.309622
2020-06-15 09:00:10 4.144620    4.170428    4944.701928 35039.309622

И ошибка следующая:

ValueError: view limit minimum -36879.560332175926 is less than 1 and is an invalid Matplotlib date value

Я попытался немного погуглить, но у меня не было одного конкретного c ответа на мою проблему. Может ли кто-нибудь помочь мне разобраться в моей проблеме? спасибо!

1 Ответ

0 голосов
/ 16 июня 2020
fig, ax1 = plt.subplots()
plt.figure(figsize=[15,10])

color_ask = 'tab:red'
color_bid = 'tab:blue'
ax1.set_xlabel('Liquidity')
ax1.set_ylabel('Price')
ax1.plot(orderbooks_hedged.index, orderbooks_hedged['topBid'], color=color_bid)
ax1.plot(orderbooks_hedged.index, orderbooks_hedged['topAsk'], color=color_ask)

ax1.tick_params(axis='y')

ax2 = ax1.twinx() 

ax2.set_ylabel('liquidity')  # we already handled the x-label with ax1


ax2.plot(orderbooks_hedged.index, orderbooks_hedged['topBidliquidity'], color=color_bid)
ax2.plot(orderbooks_hedged.index, orderbooks_hedged['topAskliquidity'], color=color_ask)

ax2.tick_params(axis='y')

fig.tight_layout()  # otherwise the right y-label is slightly clipped
plt.show()`enter code here`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...