Pandas 从一个数据帧生成多个饼图(每列一个)
我的问题类似于 然而,在我的案例中,我寻找的不是每一行,而是每一列。 我可以为每列制作饼图,但是,由于我有12列,饼图彼此太接近 我使用了以下代码:Pandas 从一个数据帧生成多个饼图(每列一个),pandas,pie-chart,Pandas,Pie Chart,我的问题类似于 然而,在我的案例中,我寻找的不是每一行,而是每一列。 我可以为每列制作饼图,但是,由于我有12列,饼图彼此太接近 我使用了以下代码: fig, axes = plt.subplots(4, 3, figsize=(10, 6)) for i, (idx, row) in enumerate(df.iterrows()): ax = axes[i // 3, i % 3] row = row[row.gt(row.sum() * .01)] ax.pie(
fig, axes = plt.subplots(4, 3, figsize=(10, 6))
for i, (idx, row) in enumerate(df.iterrows()):
ax = axes[i // 3, i % 3]
row = row[row.gt(row.sum() * .01)]
ax.pie(row, labels=row.index, startangle=30)
ax.set_title(idx)
fig.subplots_adjust(wspace=.2)
我有以下结果
但我想要的是在另一边。我需要12个饼图(因为我有12列),每个饼图应该有4个部分(腿、车、步行和自行车)
如果我写这个代码
fig, axes = plt.subplots(4,3)
for i, col in enumerate(df.columns):
ax = axes[i // 3, i % 3]
plt.plot(df[col])
然后我得到以下结果:
如果我使用:
plot = df.plot.pie(subplots=True, figsize=(17, 8),labels=['pt','car','walk','bike'])
然后我得到以下结果:
这正是我要找的。但不可能读取饼图。如果它能产生更清晰的输出,那就更好了。在你的链接文章中,我会使用matplotlib.pyplot。公认的答案使用了
plt.子图(2,3)
,我建议您也这样做,创建两行,每行中有3个图。
像这样:
图,轴=plt.子批次(2,3)
对于i,枚举中的列(df.列):
ax=轴[i//3,i%3]
ax.绘图(df[col])
正如在您的链接帖子中一样,我将使用matplotlib.pyplot进行此操作。公认的答案使用了plt.子图(2,3)
,我建议您也这样做,创建两行,每行中有3个图。
像这样:
图,轴=plt.子批次(2,3)
对于i,枚举中的列(df.列):
ax=轴[i//3,i%3]
ax.绘图(df[col])
最后,我明白了如果我交换行和列
df_sw = df.T
然后我可以使用示例中的代码:
最后,我明白了如果我交换行和列
df_sw = df.T
然后我可以使用示例中的代码:
我已经写了plt.子图(2,3),但它不起作用。在链接的帖子中,你需要访问每个子图的轴和图形。真的,这和你的链接帖子一样,被接受的答案调用每个
ax
,并在上面绘图。我理解你所说的,但我需要为每个culumn绘制饼图,而不是为行绘制饼图。当我使用示例代码时,我不能使用ItErrors或我没有row或idxI添加了结果的foto谢谢你的回复。我已经回答了我的问题。我已经写了plt.子图(2,3),但它不起作用。在你的链接文章中,你需要访问每个子图的轴和图形。真的,这和你的链接帖子一样,被接受的答案调用每个ax
,并在上面绘图。我理解你所说的,但我需要为每个culumn绘制饼图,而不是为行绘制饼图。当我使用示例代码时,我不能使用ItErrors或我没有row或idxI添加了结果的foto谢谢你的回复。我已经把我的问题提出来了。