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数组并使用上面代码中的格式?
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)