如何在 matplotlib/seaborn 中用饼图填充 ndarray 图形?
How do you populate a ndarray figure with pie charts in matplotlib/seaborn?
我有按国家/地区分组的类型的流媒体数据,如下所示:
country type value count
198 Canada Movie International Movies 141
199 Canada Movie Dramas 106
200 Canada Movie Comedies 70
201 Canada Movie Documentaries 48
202 Canada Movie Action & Adventure 41
示例数据可以在这里找到:https://rentry.co/kdqy2
我正在尝试为前 10 个国家/地区创建饼图并将它们显示为 2 行 x 5 列。
在阅读了一些列出的堆栈溢出解决方案后 here and 说必须为 ndarrays 修改使用 for 循环以使其正确遍历和填充图,我想出了以下代码:
fig, axs = plt.subplots(2, 5, figsize=(3*5, 6), subplot_kw={'aspect':'equal'})
for row in axs:
for ax, (name, sub_df) in zip(row, genre_df.groupby('country')):
ax.pie(sub_df['count'], labels=sub_df['value'])
ax.set_title(name)
但这只显示前五个国家两次:
我想我需要将索引与 axs
中的 ax
相关联,以便将其强制到后 5 个国家,但我不知道如何使用 enumerate()和一个 zip() 同时在 for 循环中。
如 所示(我确信在其他地方),您可以使用 ravel()
或 flatten()
或 flat
并且只使用一个循环:
for ax, (name, sub_df) in zip(axs.ravel(), genre_df.groupby('country')):
我有按国家/地区分组的类型的流媒体数据,如下所示:
country type value count
198 Canada Movie International Movies 141
199 Canada Movie Dramas 106
200 Canada Movie Comedies 70
201 Canada Movie Documentaries 48
202 Canada Movie Action & Adventure 41
示例数据可以在这里找到:https://rentry.co/kdqy2
我正在尝试为前 10 个国家/地区创建饼图并将它们显示为 2 行 x 5 列。
在阅读了一些列出的堆栈溢出解决方案后 here and
fig, axs = plt.subplots(2, 5, figsize=(3*5, 6), subplot_kw={'aspect':'equal'})
for row in axs:
for ax, (name, sub_df) in zip(row, genre_df.groupby('country')):
ax.pie(sub_df['count'], labels=sub_df['value'])
ax.set_title(name)
但这只显示前五个国家两次:
我想我需要将索引与 axs
中的 ax
相关联,以便将其强制到后 5 个国家,但我不知道如何使用 enumerate()和一个 zip() 同时在 for 循环中。
如 ravel()
或 flatten()
或 flat
并且只使用一个循环:
for ax, (name, sub_df) in zip(axs.ravel(), genre_df.groupby('country')):