如何在Pandas和Matplotlib中使用斧头

Hou*_*und 3 python numpy matplotlib pandas

我有一个非常基本的问题。我正在使用熊猫数据框进行绘制,但是我想在某些日期周围添加突出显示。

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

出[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()
Run Code Online (Sandbox Code Playgroud)

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

Ffi*_*ydd 5

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()
Run Code Online (Sandbox Code Playgroud)

如果要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()
Run Code Online (Sandbox Code Playgroud)

最后,通常可以使用以下功能获取当前图形和坐标轴对象

fig = plt.gcf()
ax = plt.gca()
Run Code Online (Sandbox Code Playgroud)