【问题标题】:plotting a series pie chart绘制系列饼图
【发布时间】:2017-12-22 13:22:33
【问题描述】:

我有一个系列 df2,我想用饼图绘制

 Index
Friday       2
Thursday     2
Wednesday    3

我试过了

 colors =  ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"]
df2.plot().pie(df2['counts'],df2.index,shadow=False,colors=colors, explode=(0, 0, 0, 0, 0.15), startangle=90,autopct='%1.1f%%', )
# View the plot drop above
pyplot.axis('equal')
# View the plot
pyplot.tight_layout()
pyplot.show()

ValueError: 无法将字符串转换为浮点数:'Wednesday'

【问题讨论】:

  • 你只有 5 天的爆炸时间,但有 7 种颜色。
  • 看到了,谢谢,现在可以使用了

标签: python pandas matplotlib plot pie-chart


【解决方案1】:

考虑pd.Series -

s

Index
Monday       2
Tuesday      4
Wednesday    5
Thursday     2
Friday       1
Saturday     6
Sunday       3
Name: counts, dtype: int64

现在,在counts 专栏上致电pd.Series.plot.pie -

s.plot.pie(y=df.index,
           shadow=False,
           colors=colors, 
           explode=(0, 0, 0, 0, 0.15, 0, 0),   # exploding 'Friday'
           startangle=90,
           autopct='%1.1f%%')

plt.axis('equal')
plt.tight_layout()
plt.show()

不要打电话给plot()!拨打pieplot


如果您需要按工作日排序索引,请确保将其转换为pd.Categorical -

cat = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday', 'Sunday']

df.index = pd.Categorical(df.index, categories=cat, ordered=True)
df = df.sort_index()

然后,你可以像上图那样绘制。

【讨论】:

  • 有没有办法自动分解计数最多的索引?
  • @Bode z = np.zeros(7); z[s.reset_index()['counts'].idxmax()] = 0.15,现在将z 传递给explode=...
  • 不错!太好了
  • 我实际上没有计数作为列 KeyError: 'counts'
  • @Bode s.reset_index().iloc[:, -1].idxmax() 那么呢?这只是具有您的计数的列的名称...
【解决方案2】:

让我们试试这个:

colors =  ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"]
df.groupby(df.Index.dt.strftime('%A'))['Index'].count().plot.pie(figsize=(5,5),colors=colors,
                                                                 explode=(0,0,0,0.1),
                                                                 startangle=90,
                                                                 autopct='%1.1f%%')

输出:

【讨论】:

    猜你喜欢
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-08
    相关资源
    最近更新 更多