Python Matplotlib绘图:属性错误:';列表';对象没有属性';xaxis';

Python Matplotlib绘图:属性错误:';列表';对象没有属性';xaxis';,python,pandas,matplotlib,plot,Python,Pandas,Matplotlib,Plot,我正试图绘制股票价格与时间的关系图(见上文)。下面的代码确实绘制了“未平仓”价格,但当我试图将X轴日期的格式从序号设置为ISO日期时,它抛出了AttributeError 同样的代码在绘制OHLC图时起作用,但不知怎么的,现在不起作用了 AttributeError:“list”对象没有属性“xaxis” df_copy = read_stock('EBAY') fig = plt.figure(figsize= (12,10), dpi = 80) ax1 = plt

我正试图绘制股票价格与时间的关系图(见上文)。下面的代码确实绘制了“未平仓”价格,但当我试图将X轴日期的格式从序号设置为ISO日期时,它抛出了
AttributeError

同样的代码在绘制OHLC图时起作用,但不知怎么的,现在不起作用了

AttributeError:“list”对象没有属性“xaxis”

    df_copy = read_stock('EBAY')

    fig = plt.figure(figsize= (12,10), dpi = 80)
    ax1 = plt.subplot(111)
    ax1 = plt.plot(df_copy['Date'], df_copy['Open'], label = 'Open values' )
    ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))

问题来自你的写作

ax1 = plt.plot(df_copy['Date'], df_copy['Open'], label = 'Open values' )
因为您正在更改ax1的类型,使其不再是由
plt.subplot()
返回的句柄。在上述行之后,是添加到绘图的行列表,用于解释错误消息。请参见绘图命令上的文档:

返回值是已添加行的列表。

这一行:

ax1=plt.plt(df_copy['Date'],df_copy['Open'],label='Open values')

将Axis对象细化为
plot
命令返回的艺术家列表

您应该直接使用对象,而不是依赖状态机将艺术家放置在轴上:

df_copy = read_stock('EBAY')

fig = plt.figure(figsize=(12, 10), dpi=80)
ax1 = fig.add_subplot(111)
lines = ax1.plot(df_copy['Date'], df_copy['Open'], label='Open values')
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))

尝试
df\u copy.set\u index('Date').Open.plot(label='Open values')
这样做有效!谢谢然而,我的疑问仍然存在。为什么它会抛出错误,并将其指定为一个列表?