Python实现饼形图的绘制

Python实现饼形图的绘制:

饼形图简单介绍:

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

绘制饼形图的主要方法:

方法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')
plt.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')
plt.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 ')
plt.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:本文为博主原创文章,转载请注明出处。

猜你喜欢

转载自blog.csdn.net/qq_41080850/article/details/83857235