我有两个数据帧 df 和 df2。他们将日期作为索引,将股价作为列。 日期 df 是 1/12/18-现在 df2 的日期现在是 +1 天,现在是 +2 天,现在是 +3 天 我想将它们绘制在同一张图表中。我还希望 x asix 的间隔为 10 天。这是我的尝试
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.dates as mdates
ax1 = plt.subplots(111)
ax2 = plt.subplots(112)
plt.xticks(rotation=70)
y1=df
y2=df2
X2=pd.to_datetime(df2.index)
x=pd.to_datetime(df.index)
ax1.plot(x, y1, 'g-')
ax2.plot(x2, y2, 'b-')
ax1.xaxis.set_major_locator(mdates.DayLocator(interval=10))
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%d-%m-%Y'))
但是获取 key 错误消息为
---> 17 ax1.plot(x, y1, 'g-')
18 ax2.plot(x2, y2, 'b-')
属性错误:“元组”对象没有属性“绘图”
最佳答案
子图的参数是您要创建的子图的数量。因此给一个,这似乎是你需要的。如果您想将它们绘制在同一个图表中,请使用相同的轴。
fig,ax1 = plt.subplots(1)
y1=df
y2=df2
X2=pd.to_datetime(df2.index)
x=pd.to_datetime(df.index)
ax1.plot(x, y1, 'g-')
ax1.plot(x2, y2, 'b-')
关于python - 在同一图中绘制具有不同 x 轴的线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53878875/