使用 subplot 和 groupby 绘制多个 y 值
Plotting with multiple y values with subplot and groupby
我有一个df
。头部见下:
Country Date suspected case confirmed cases suspected deaths confirmed deaths
0 Guinea 2014-08-29 25.0 141.0 482.0 648.0
1 Nigeria 2014-08-29 3.0 1.0 15.0 19.0
2 Liberia 2014-08-29 382.0 674.0 322.0 1378.0
通过使用 df.groupby('Country')
,我想使用 xaxis
的 Date
列针对 confirmed case
绘制 suspected case
。将它们绘制为 (5, 2) 个子图
到目前为止我所做的还没有完全掌握:
fig, ax = plt.subplots(2, 5, sharey=True)
df.groupby('Country').plot(x='Date', y=['suspected cases', 'confirmed cases'], title=f'Suspected vs. Confirmed cases {country}')
plt.show()
到目前为止发生的事情是有一个空的 5x2 子图,下面单独显示每个图。这是为什么?
这也是一个小问题,但希望得到澄清。在我的 .plot()
函数中,为什么最后分组的国家只显示在标题中?例如,我将 10 个国家/地区组合在一起用于此图,但标题 Suspected vs. Confirmed cases USA
显示的是每张图。
查看了一些 SO 帖子并结合了一些答案试图解决我的问题,但我似乎在兜圈子。
你可以这样做:
fig, ax = plt.subplots(2, 5, sharey=True)
for (c,d), a in zip(df.groupby('Country'), ax.ravel()):
d.plot(x='Date',
y=['suspected cases', 'confirmed cases'],
title=f'Suspected vs. Confirmed cases {c}',
ax=a, subplots=False)
输出:
我有一个df
。头部见下:
Country Date suspected case confirmed cases suspected deaths confirmed deaths
0 Guinea 2014-08-29 25.0 141.0 482.0 648.0
1 Nigeria 2014-08-29 3.0 1.0 15.0 19.0
2 Liberia 2014-08-29 382.0 674.0 322.0 1378.0
通过使用 df.groupby('Country')
,我想使用 xaxis
的 Date
列针对 confirmed case
绘制 suspected case
。将它们绘制为 (5, 2) 个子图
到目前为止我所做的还没有完全掌握:
fig, ax = plt.subplots(2, 5, sharey=True)
df.groupby('Country').plot(x='Date', y=['suspected cases', 'confirmed cases'], title=f'Suspected vs. Confirmed cases {country}')
plt.show()
到目前为止发生的事情是有一个空的 5x2 子图,下面单独显示每个图。这是为什么?
这也是一个小问题,但希望得到澄清。在我的 .plot()
函数中,为什么最后分组的国家只显示在标题中?例如,我将 10 个国家/地区组合在一起用于此图,但标题 Suspected vs. Confirmed cases USA
显示的是每张图。
查看了一些 SO 帖子并结合了一些答案试图解决我的问题,但我似乎在兜圈子。
你可以这样做:
fig, ax = plt.subplots(2, 5, sharey=True)
for (c,d), a in zip(df.groupby('Country'), ax.ravel()):
d.plot(x='Date',
y=['suspected cases', 'confirmed cases'],
title=f'Suspected vs. Confirmed cases {c}',
ax=a, subplots=False)
输出: