如何在Pandas和Matplotlib中使用ax?

10

我有一个非常基本的问题。我正在使用pandas dataframe制作这个图表,但我想在特定日期周围添加高亮。

In[122]:
df1_99.plot(x='date', y='units', ylim=[0,11], figsize=[12,12])

Out[122]: 这里输入图片描述

我在stackoverflow上找到了这段代码,用于添加高亮。

fig, ax = plt.subplots()
ax.plot_date(t, y, 'b-')
ax.axvspan(*mdates.datestr2num(['10/27/2011', '11/2/2011']), color='red', alpha=0.5)
fig.autofmt_xdate()
plt.show()

我的问题是如何在当前代码中使用ax.avxspan?或者我需要将x='date'和y='units'转换为numpy数组,并像上面的代码一样使用格式吗?


1
df.plot 返回一个 AxesSubplot,它有一个 axvspan 方法。 - cphlewis
1个回答

15

pandas.DataFrame.plot函数将返回matplotlib的AxesSubplot对象。

ax = df1_99.plot(x='date', y='units', ylim=[0,11], figsize=[12,12])

ax.axvspan(*mdates.datestr2num(['10/27/2011', '11/2/2011']), color='red', alpha=0.5)
plt.show()

如果您想提前创建一个 ax 对象,您可以按照下面的方式将其传递到 plot

fig, ax = plt.subplots()

df1_99.plot(x='date', y='units', ylim=[0,11], figsize=[12,12], ax=ax)

ax.axvspan(*mdates.datestr2num(['10/27/2011', '11/2/2011']), color='red', alpha=0.5)
plt.show()

最后,您通常可以使用以下函数获取当前的图形和坐标轴对象

fig = plt.gcf()
ax = plt.gca()

好的,现在我明白多了。非常感谢你。 - Hound
1
我一直在寻找一种方法,可以在使用pandas制作的图表上使用Matplotlib图形方法。 fig,ax = plt.subplots() 然后使用ax=ax绘图给了我所需的链接。谢谢! - BLimitless

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接