日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

matplotlib可视化之饼图plt.pie()与plt.legend()中bbox_to_anchor参数的理解

發布時間:2024/3/12 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matplotlib可视化之饼图plt.pie()与plt.legend()中bbox_to_anchor参数的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 函數功能:表示離散變量各占比情況
  • 調用方法:plt.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)
  • 參數說明:
    • x:指定繪圖的數據
    • explode:指定餅圖某些部分的突出顯示,即呈現爆炸式
    • labels:為餅圖添加標簽說明,類似于圖例說明
    • colors:指定餅圖的填充色
    • autopct:自動添加百分比顯示,可以采用格式化的方法顯示
    • pctdistance:設置百分比標簽與圓心的距離
    • shadow:是否添加餅圖的陰影效果
    • labeldistance:設置各扇形標簽(圖例)與圓心的距離;
    • startangle:設置餅圖的初始擺放角度;
    • radius:設置餅圖的半徑大小;
    • counterclock:是否讓餅圖按逆時針順序呈現;
    • wedgeprops:設置餅圖內外邊界的屬性,如邊界線的粗細、顏色等;
    • textprops:設置餅圖中文本的屬性,如字體大小、顏色等;
    • center:指定餅圖的中心點位置,默認為原點
    • frame:是否要顯示餅圖背后的圖框,如果設置為True的話,需要同時控制圖框x軸、y軸的范圍和餅圖的中心位置;

一、繪制簡單餅圖:

二、環形圖:通過參數wedgecolor = {'width':0.5}繪制,自定義數值0.5表示環形圖的寬度

?三、使用多個參數繪制復雜餅圖:

#構造數據:某城鎮受教育程度 education = [9823, 5601, 3759, 1400, 450] labels = ['小學', '初中', '高中', '大學', '研究生及以上']explode = [0,0,0,0.2,0.3] # 用于突出顯示特定人群 # 自定義顏色,更多顏色參考顏色網站:https://xkcd.com/color/rgb/ colors=['#9999ff','#ff9999','#7777aa','#2442aa','#dd5555'] # 將橫、縱坐標軸標準化處理,保證餅圖是一個正圓,否則可能為橢圓 plt.axes(aspect='equal')# 繪制餅圖 plt.pie(x = education, # 繪圖數據 explode=explode, # 突出顯示特定人群labels=labels, # 添加教育水平標簽colors=colors, # 設置餅圖的自定義填充色autopct='%.1f%%', # 設置百分比的格式,這里保留一位小數pctdistance=0.7, # 設置百分比標簽與圓心的距離labeldistance = 1.15, # 設置教育水平標簽與圓心的距離startangle = 180, # 設置餅圖的初始角度radius = 1.5, # 設置餅圖的半徑counterclock = False, # 是否逆時針,這里設置為順時針方向# 設置餅圖內外邊界的屬性值:linewidth表示餅圖內外邊框線寬度;width表示餅圖內外寬度,可控制生成環形圖;edgecolor表示邊框線的顏色 wedgeprops = {'linewidth': 1.5,'width':0.5, 'edgecolor':'green'}, textprops = {'fontsize':12, 'color':'k'}, # 設置文本標簽的屬性值center = (0,0), # 設置餅圖的原點frame = 0) # 是否顯示餅圖的圖框,這里設置不顯示# 顯示圖形 plt.show()

四、內嵌環形圖:用來分析兩組具有同類別的數據對比

通過半徑radius跟環形圖的寬度設置wedgeprops={'width':num}來繪制

例如:分析兩種草莓蛋糕的配料占比情況

# 自定義顏色圖列表 colormaplist = ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00"] elements =['面粉','糖','奶油','草莓','堅果'] weight1 = [40,15,20,10,15] weight2 = [30,25,15,20,10]plt.pie(weight1,autopct="%3.1f%%", # 百分比顯示格式radius=1, # 半徑pctdistance=0.85, # 百分比文本距離圓心距離colors=colormaplist, # 顏色textprops=dict(color= "w"), # 文本設置 labels = elements, # 各類別標簽wedgeprops=dict(width=0.3, edgecolor = 'w')) # 餅圖內外邊格式設置plt.pie(weight2,autopct="%3.1f%%",radius=0.7,pctdistance=0.75,colors=colormaplist, #內環形圖也使用相同的顏色圖,否則會出現同類別的兩個數據顏色不對應,不利于觀測分析textprops=dict(color= "w"),wedgeprops=dict(width=0.3, edgecolor = 'w'))# 通過legend函數中的loc和bbox_to_anchor參數控制圖例位置 # bbox_to_anchor = (x,y,width,height)具體四個參數含義在后面解釋 plt.legend( loc = 'center right',bbox_to_anchor = (1.15,0,0.3,1),fontsize = 15) plt.title('兩種草莓蛋糕中配料的比例對比圖',fontsize = 17)plt.show()

五、plt.legend()中的bbox_to_anchor = (x,y,width,height)中四個參數的理解

?1)bbox_to_anchor?參數用來更好的控制以及調整圖例框的位置

?2)x,y表示圖例框的某個點的坐標位置,而至于那個點是哪里,取決于plt.legend中的參數loc決定,例如:loc = 'center'則x,y表示圖例框中心點的位置;

3)width表示將由x,y表示的原圖例框的初始位置水平移動多少距離(距離原圖例框的寬度);

??height表示將由x,y表示的原圖例框的初始位置豎直移動多少距離(距離原圖例框的高度);

下面用作圖來理解:

fig,ax = plt.subplots(2,1,figsize = (8,5))ax[0].scatter(0.5,0.5,label = '(0.5,0.5,0,0)') ax[0].legend(loc = 'upper right',bbox_to_anchor = (0.5,0.5,0,0),prop={'size':20}) ax[0].set_xlim(0,1) ax[0].set_ylim(0,1)ax[1].scatter(0.5,0.5,label = '(0.5,0.5,0.5,0.5)') ax[1].legend(loc = 'upper right',bbox_to_anchor = (0.5,0.5,0.5,0.5),prop={'size':20}) ax[1].set_xlim(0,1) ax[1].set_ylim(0,1)plt.subplots_adjust(hspace=0.2) plt.show()

?由上圖第一個子圖可知:圖例框的右上頂點('upper right')對應點(0.5,0.5);由第二個子圖可知:當width,height設置0.5時,表示新的圖例框距離原圖例框位置水平跟垂直距離0.5的位置,此時新圖例框右上頂點的位置為(1,1)。
?

總結

以上是生活随笔為你收集整理的matplotlib可视化之饼图plt.pie()与plt.legend()中bbox_to_anchor参数的理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。