matplotlib饼状图画法介绍
先上代码:
import pandas as pd
import matplotlib.pyplot as plt
planets = pd.read_csv('planets.csv')
planets = planets.groupby('method').sum()['number'].head(4)
print(planets)
y = planets.index
x = planets.values
colors=['red','green','orange','blue']
explode = [0,0.1,0,0.1]
plt.rcParams['font.sans-serif']=['SimHei']#这两句作用为防止中文乱码
plt.rcParams['axes.unicode_minus']=False
plt.pie(x=x,labels=y,colors=colors,explode=explode,pctdistance=0.8,labeldistance=1.2,autopct='%1.1f%%',
radius=1.2,wedgeprops={'linewidth':'1.5','edgecolor':'black'},
textprops={'fontsize':10,'color':'black'})
plt.title('各方法统计的数量之和',fontsize=10,pad=10)
plt.show()
再来看一下结果图:
好了,接下来咱们先对代码进行简单的介绍,然后对饼状图中的参数进行详细表格介绍:
- planets = pd.read_csv(‘planets.csv’)
planets = planets.groupby(‘method’).sum()[‘number’].head(4)
第一句是使用pandas读取文件中的数据,第二句是按照‘method’属性进行分类统计数量总和,然后取数据的前四行。之所以取前四行是因为本数据涉及到的method 种类比较多,十好几种,我就选择了四类进行演示。 - plt.rcParams[‘font.sans-serif’]=[‘SimHei’]
plt.rcParams[‘axes.unicode_minus’]=False
这两个方法的作用就是防止图片显示时中文出现乱码。 - plt.pie()此方法用来绘画饼状图,下面通过表格尽心参数详细介绍
参数 | 数据类型 | 说明 |
---|---|---|
x | 列表 【int/float】 | 该数是用来计算所占百分比 |
labels | 列表 | 显示各部分的标签,必须与x的列表长度一致 |
explode | 列表【int/float】 | 该部分距离圆心的距离,默认为0 |
pctdistance | int/float | 百分比数据距离圆心的距离 |
labeldistance | int/float | 标签距离圆心的距离 |
autopct | %1.1f%% | 百分比的数据格式 |
radius | int/float | 半径长度 |
wedgeprops | 字典 | 设置图形具体属性,如边框颜色 |
textprops | 字典 | 设置图形文字的属性,大小颜色 |
注:
planets数据下载