python pie函数_matplotlib 知识点11:绘制饼图(pie 函数精讲)
餅圖英文學(xué)名為Sector Graph,又名Pie Graph。常用于統(tǒng)計(jì)學(xué)模塊。
畫餅圖用到的方法為:matplotlib.pyplot.pie( )
#!/usr/bin/env python#!-*-coding:utf-8 -*-#!@Author : Biyoulin#!@Time : 2018/9/4 10:45
importmatplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標(biāo)簽
labels= ['娛樂','育兒','飲食','房貸','交通','其它']
sizes= [2,5,12,70,2,9]
explode= (0,0,0,0.1,0,0)
plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=150)
plt.title("餅圖示例-8月份家庭支出")
plt.show()
上面的圖形為橢圓形,可加入以下一條命令將之顯示為長寬相等的餅圖。
plt.axis('equal') #該行代碼使餅圖長寬相等
pie 函數(shù)格式:
def pie(x, explode=None, labels=None, colors=None, autopct=None,
pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None,
radius=None, counterclock=True, wedgeprops=None, textprops=None,
center=(0, 0), frame=False, rotatelabels=False, hold=None, data=None)
pie 函數(shù)參數(shù)詳解,英文原版請參見:matplotlib官網(wǎng)pie函數(shù):
x :(每一塊)的比例,如果sum(x) >1會使用sum(x)歸一化;
labels :(每一塊)餅圖外側(cè)顯示的說明文字;
explode :(每一塊)離開中心距離;
startangle :起始繪制角度,默認(rèn)圖是從x軸正方向逆時針畫起,如設(shè)定=90則從y軸正方向畫起;
shadow :在餅圖下面畫一個陰影。默認(rèn)值:False,即不畫陰影;
labeldistance :label標(biāo)記的繪制位置,相對于半徑的比例,默認(rèn)值為1.1, 如<1則繪制在餅圖內(nèi)側(cè);
autopct :控制餅圖內(nèi)百分比設(shè)置,可以使用format字符串或者format function'%1.1f'指小數(shù)點(diǎn)前后位數(shù)(沒有用空格補(bǔ)齊);
pctdistance :類似于labeldistance,指定autopct的位置刻度,默認(rèn)值為0.6;
radius :控制餅圖半徑,默認(rèn)值為1;counterclock:指定指針方向;布爾值,可選參數(shù),默認(rèn)為:True,即逆時針。將值改為False即可改為順時針。
wedgeprops:字典類型,可選參數(shù),默認(rèn)值:None。參數(shù)字典傳遞給wedge對象用來畫一個餅圖。例如:wedgeprops={'linewidth':3}設(shè)置wedge線寬為3。
textprops:設(shè)置標(biāo)簽(labels)和比例文字的格式;字典類型,可選參數(shù),默認(rèn)值為:None。傳遞給text對象的字典參數(shù)。
center:浮點(diǎn)類型的列表,可選參數(shù),默認(rèn)值:(0,0)。圖標(biāo)中心位置。
frame:布爾類型,可選參數(shù),默認(rèn)值:False。如果是true,繪制帶有表的軸框架。
rotatelabels:布爾類型,可選參數(shù),默認(rèn)為:False。如果為True,旋轉(zhuǎn)每個label到指定的角度。
pie()函數(shù)各參數(shù)示例:
importmatplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標(biāo)簽
labels= 'A','B','C','D'sizes= [10,10,10,70]
plt.pie(sizes,labels=labels)
plt.title("餅圖詳解示例")
plt.text(1,-1.2,'By:Biyoulin')
plt.show()
1、x:每一塊餅圖的比例,為必填項(xiàng),如果sum(x)>1,會將多出的部分進(jìn)行均分;
sizes = [10,10,20,60]
2、labels : 每一塊餅圖外側(cè)顯示的說明文字;
labels = 'A','B','C','Change'
3、explode : 每一塊餅圖 離開中心距離,默認(rèn)值為(0,0),就是不離開中心;
explode = (0,0,0.1,0) #將第三塊分離出來
4、colors:數(shù)組,可選參數(shù),默認(rèn)為:None;用來標(biāo)注每塊餅圖的matplotlib顏色參數(shù)序列。如果為None,將使用當(dāng)前活動環(huán)的顏色。
colors = ['r','g','y','b'] #自定義顏色列表
plt.pie(sizes,explode=explode,labels=labels,colors=colors)
5、shadow :是否陰影,默認(rèn)值為False,即沒有陰影,將其改為True,顯示結(jié)果如下圖所示;
plt.pie(sizes,explode=explode,labels=labels,colors=colors,shadow=True)? # 添加陰影
6、autopct :控制餅圖內(nèi)百分比設(shè)置,可以使用format字符串或者format function;
'%1.1f':指小數(shù)點(diǎn)后保留一位有效數(shù)值;
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f',shadow=True)
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.2f%%',shadow=True) #保留兩位小數(shù)點(diǎn),增加百分號(%);
7、startangle :起始繪制角度,默認(rèn)圖是從x軸正方向逆時針畫起,如設(shè)定startangle=90則從y軸正方向畫起;
plt.pie(sizes,explode=explode,labels=labels,
colors=colors,autopct='%1.2f%%',shadow=True,startangle=30)
8、counterclock:指定指針方向;布爾值,可選參數(shù),默認(rèn)為:True,即逆時針。將值改為False即可改為順時針。
plt.pie(sizes,explode=explode,labels=labels,
colors=colors,autopct='%1.2f%%',shadow=True,startangle=30,counterclock=False)
9、labeldistance : label繪制位置,相對于半徑的比例, 如<1則繪制在餅圖內(nèi)側(cè),默認(rèn)值為1.1;
plt.pie(sizes,explode=explode,labels=labels,colors=colors,
autopct='%1.2f%%',shadow=True,labeldistance=0.8,startangle=30,counterclock=False)
10、radius :控制餅圖半徑;浮點(diǎn)類型,可選參數(shù),默認(rèn)為:None。如果半徑是None,將被設(shè)置成1。
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.2f%%',
shadow=True,labeldistance=0.8,startangle=30,radius=1.3,counterclock=False)
11、pctdistance : 類似于labeldistance,指定autopct的位置刻度,默認(rèn)值為0.6;
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.2f%%',
pctdistance=0.4,shadow=True,labeldistance=0.8,startangle=30,radius=1.3,counterclock=False)
12、textprops:設(shè)置標(biāo)簽(labels)和比例文字的格式;字典類型,可選參數(shù),默認(rèn)值為:None。
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.2f%%',
pctdistance=0.4,shadow=True,labeldistance=0.8,startangle=30,radius=1.3,
counterclock=False,textprops={'fontsize':20,'color':'black'})
13、將餅圖顯示為正圓形,plt.axis( );
plt.axis('equal')
14、添加圖例,plt.legend( );
plt.legend(loc="upper right",fontsize=10,bbox_to_anchor=(1.1,1.05),borderaxespad=0.3)#loc = 'upper right' 位于右上角#bbox_to_anchor=[0.5, 0.5] # 外邊距 上邊 右邊#ncol=2 分兩列#borderaxespad = 0.3圖例的內(nèi)邊距
15、保存圖表,plt.savefig( );
plt.savefig("C:\\餅圖02.png",dpi=200,bbox_inches='tight')
1 #!/usr/bin/env python
2 #!-*-coding:utf-8 -*-
3 #!@Author : Biyoulin
4 #!@Time : 2018/9/4 16:43
5
6 importmatplotlib.pyplot as plt7 plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標(biāo)簽
8
9 #labels = 'A','B','C','D'
10 labels = 'A','B','C','Change'
11 #sizes = [10,10,10,70]
12 sizes = [10,10,20,60]13 explode = (0,0,0.1,0)14 colors = ['r','g','y','b']15
16 plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.2f%%',17 pctdistance=0.4,shadow=True,labeldistance=0.8,startangle=30,radius=1.3,18 counterclock=False,textprops={'fontsize':20,'color':'black'})19
20 plt.title("餅圖詳解示例")21 plt.text(1,-1.2,'By:Biyoulin')22 plt.axis('equal')23 plt.legend(loc="upper right",fontsize=10,bbox_to_anchor=(1.1,1.05),borderaxespad=0.3)24 #loc = 'upper right' 位于右上角
25 #bbox_to_anchor=[0.5, 0.5] # 外邊距 上邊 右邊
26 #ncol=2 分兩列
27 #borderaxespad = 0.3圖例的內(nèi)邊距
28
29 plt.savefig("C:\\餅圖02.png",dpi=200,bbox_inches='tight')30 plt.show()
餅圖示例完整代碼
作者:biyoulin
版權(quán)聲明:本文版權(quán)歸作者所有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
總結(jié)
以上是生活随笔為你收集整理的python pie函数_matplotlib 知识点11:绘制饼图(pie 函数精讲)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt 设置窗口背景图片的几种方法实例
- 下一篇: c语言指针知识点总结