在同一绘图上绘制多个比例尺

时间:2020-06-21 19:40:41

标签: python python-3.x pandas matplotlib

我有以下代码:

import pandas as pd
from pandas_datareader import data as web
import matplotlib as plt
import datetime as date

start = date.datetime(2000,1,1)
end = date.datetime.today()
df = web.DataReader('fb', 'yahoo',start, end)
df2  = web.DataReader('f', 'yahoo',start, end)

ax = df.plot(y = 'Close')

df3 = df2.pct_change()
df3.plot(y = 'Close', ax=ax)

此代码产生以下图表:

enter image description here

橙色线是其中百分比变化的图,因此将其绘制为水平线。

是否有可能在同一图上绘制百分比变化,在该图上我已针对价格绘制了另一个符号。我的想法是,在右侧轴上将显示百分比,在左侧轴上将是价格。可能吗 ?如果可以的话,请您告诉我如何?

1 个答案:

答案 0 :(得分:1)

稍作更改:您需要同时使用plt.subplots()twinx。这样,x轴将与a轴重复,并将图的另一侧用作y轴

fig, ax = plt.subplots()
df.plot(y = 'Close', ax=ax)

ax2 = ax.twinx()
df3 = df2.pct_change()
df3.plot(y = 'Close', ax=ax2)

您可能需要添加颜色参数,因为两个图将使用相同的默认颜色。