Просто используйте дополнительную ось Y, как показано ниже.Сначала создайте объект оси ax
, а затем нанесите график непосредственно с помощью DataFrame и используйте secondary_y=True
для столбца 'sent'
.
import matplotlib.pyplot as plt
df= pd.DataFrame({'Date':['2007-01-01 07:14:00','2007-01-01 07:25:00','2007-01-01 08:00:00',
'2007-01-01 09:14:00','2007-01-01 09:33:12'],
'sent':[-0.32,0.34,-0.45,0.7,0.22],'var1': [114,115,111,112,113],
'var2':[110,111,115,112,109]})
fig, ax = plt.subplots()
df.plot('Date','var1',label='price1', ax=ax)
df.plot('Date','var2',label= 'price2',ax=ax)
df.plot('Date','sent',secondary_y=True, ax=ax, label='sent')
В качестве альтернативы вы также можете явно использовать twinx
, как показано ниже, что генерирует рисунок ниже.Это немного сложно, потому что теперь у вас будет два отдельных блока легенд.Если вы хотите объединить два блока вместе, вы можете прочитать этот ответ
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(df.Date,df.var1,label='price1')
ax.plot(df.Date,df.var2,label= 'price2')
ax.legend(loc=0)
ax1 = ax.twinx()
ax1.plot(df.Date,df.sent,color='g', label='sent')
ax1.legend(loc=2)