Python实现饼形图的绘制

说明:代码运行环境为 Win10+Python3+jupyter notebook

饼形图简单介绍:

饼形图一般用于描述分类型数据的相对频数或百分数频数分布,呈现部分与总体的关系。

绘制饼形图的主要方法:

方法1:利用pandas中的Series.plot()或DataFrame.plot.pie()方法

方法2:利用matplotlib包中的调用axes.pie()方法

首先导出需要的各种包,并准备好要用到的数据:

%matplotlib notebook
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import seaborn as sns

tips = pd.read_csv('examples/tips.csv')

tips的表结构如下图所示:

对数据做初步处理:

# 以tips中的day列作为依据,对tips做分组处理
grouped = tips.groupby(tips['day'])

# 对分组数据进行统计求和
grouped_sum = grouped.sum()

grouped_sum的表结构表结构如下图所示:

开始绘制饼形图:

方法1具体事例:

Sereis.plot()示例:

fig,axes = plt.subplots()
grouped_sum['total_bill'].plot(kind='pie',ax=axes,autopct='%.2f%%')
# autopct参数的作用是指定饼形图中数据标签的显示方式
# '%.2f%%'表示数据标签的格式是保留两位小数的百分数

axes.set_aspect('equal') # 设置饼图的纵横比相等
axes.set_title('Sum of total_bill grouped by day')
fig.savefig('p1.png')

上述代码绘制的图形为:

Series.plot()的用法具体参考:

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.plot.html?highlight=series%20plot#pandas.Series.plot

DataFrame.plot.pie()示例:

fig,axes = plt.subplots()
grouped_sum.plot.pie(y='tip',ax=axes,autopct='%.2f%%',legend=False, 
                     labeldistance=0.8)
# autopct参数的作用是指定饼形图中数据标签的显示方式
# '%.2f%%'表示数据标签的格式是保留两位小数的百分数
# labeldistance参数指定了每个扇形对应的标签与圆心的距离

axes.set_aspect('equal')   # 设置饼图的纵横比相等
axes.set_title('Sum of tip grouped by day')
fig.savefig('p2.png')

上述代码绘制的图形为:

DataFrame.plot.pie()的用法具体参考:

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.pie.html?highlight=dataframe%20pie#pandas.DataFrame.plot.pie

方法2具体示例:

axes.pie()示例:

fig,axes = plt.subplots()
axes.pie(grouped_sum['total_bill'],explode=[0.1,0,0,0],autopct='%.2f%%',
         labels=['Fri','Sat','Sun','Thur'],startangle=90)
# explode参数指定了每个扇形与圆心偏移的距离,一般用于突出显示某个扇形
# labels参数指定了每个扇形对应的标签
# startangle=90表示饼图的起始绘制角度是偏离x轴90度,并按逆时针绘制

axes.set_aspect('equal')
axes.set_title('Sum of total_bill grouped by day ')
fig.savefig('p3.png')

上述代码绘制的图形为:

axes.pie()的用法具体参考:

https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.pie.html?highlight=axes%20pie#matplotlib.axes.Axes.pie

其他参考资料:

《Python for Data Analysis》第二版

https://pandas.pydata.org/pandas-docs/stable/visualization.html?highlight=visualization#visualization-pie

https://www.cnblogs.com/fat39/p/7159881.html

https://docs.python.org/3/library/string.html#grammar-token-conversion

PS:本文为博主原创文章,转载请注明出处。

 

 

 

 

 

 

 

  • 15
    点赞
  • 66
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

Backcanhave7

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值