【问题标题】:How to use ax with Pandas and Matplotlib如何在 Pandas 和 Matplotlib 中使用 ax
【发布时间】:2015-06-16 13:36:09
【问题描述】:

我有一个非常基本的问题。我正在使用 pandas 数据框来制作此图,但我想在某些日期周围添加突出显示。

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

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

【问题讨论】:

  • df.plot 返回一个 AxesSubplot,它有一个 axvspan 方法。

标签: python numpy pandas matplotlib


【解决方案1】:

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()

最后,你通常可以使用the following functions获取当前的图形和轴对象

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

【讨论】:

  • 好的,现在更有意义了。非常感谢。
  • 我一直在寻找一种方法来使用 Matplotlib 图形方法对熊猫制作的绘图。 fig, ax = plt.subplots() 然后用 ax=ax 绘图给出了我需要的链接。谢谢!
猜你喜欢
  • 2020-09-18
  • 1970-01-01
  • 2016-08-14
  • 2017-07-11
  • 2021-05-30
  • 1970-01-01
  • 2017-12-12
相关资源
最近更新 更多