matplotlib绘制饼状图

时间:2024-07-21 11:08:02

源自http://blog.****.net/skyli114/article/details/77508430?ticket=ST-41707-PzNbUDGt6R5KYl3TkWDg-passport.****.net

pyplot使用plt.pie()来绘制饼图

1 import matplotlib.pyplot as plt
2 labels = 'frogs', 'hogs', 'dogs', 'logs'
3 sizes = 15, 20, 45, 10 # [15,20,45,10]也可,按比例计算总90,45占50%
4 colors = 'yellowgreen', 'gold', 'lightskyblue', 'lightcoral'
5 explode = 0, 0.1, 0, 0 #0.1表示将Hogs那一块凸显出来
6 plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=50) #startangle表示饼图的起始角度
7 plt.axis('equal') #让饼图显示为一个长宽相等的饼图
8 plt.show()

matplotlib绘制饼状图matplotlib绘制饼状图

from matplotlib import pyplot as plt 

#调节图形大小,宽,高
plt.figure(figsize=(6,9))
#定义饼状图的标签,标签是列表
labels = [u'第一部分',u'第二部分',u'第三部分']
#每个标签占多大,会自动去算百分比
sizes = [60,30,10]
colors = ['red','yellowgreen','lightskyblue']
#将某部分爆炸出来, 使用括号,将第一块分割出来,数值的大小是分割出来的与其他两块的间隙
explode = (0.05,0,0) patches,l_text,p_text = plt.pie(sizes,explode=explode,labels=labels,colors=colors,
labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,
startangle = 90,pctdistance = 0.6) #labeldistance,文本的位置离圆点有多远,1.1指1.1倍半径的位置
#autopct,圆里面的文本格式,%3.1f%%表示小数有三位,整数有一位的浮点数
#shadow,饼是否有阴影
#startangle,起始角度,0,表示从0开始逆时针转,为第一块。一般选择从90度开始比较好看
#pctdistance,百分比的text离圆心的距离
#patches, l_texts, p_texts,为了得到饼图的返回值,p_texts饼图的内部文本,l_texts饼图外label的文本 #改变文本的大小
#方法是把每一个text遍历。调用set_size方法设置它的属性
for t in l_text:
t.set_size=(30)
for t in p_text:
t.set_size=(20)
# 设置x,y轴刻度一致,这样饼图才能是圆的
plt.axis('equal')
plt.legend()
plt.show() 作者:Kedi
链接:https://www.jianshu.com/p/0a76c94e9db7
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。