1. 程式人生 > 程式設計 >Matplotlib 繪製餅圖解決文字重疊的方法

Matplotlib 繪製餅圖解決文字重疊的方法

在使用Matplotlib 繪製餅圖的時候有些時候一些資料的比列太小在餅圖呈現的效果不明顯 很容易被覆蓋,為了解決這個問題以下就是我個人的心得。

【未解決之前呈現的效果】

Matplotlib 繪製餅圖解決文字重疊的方法

可以看到這個餅狀圖其他和碩士這2個部分佔比很小而且比例相互覆蓋,這讓人看起來不舒服,所以針對這個問題我們可以調整下字型大小以及佈局大小。

1.設定字型的大小

patches,l_text,p_text=plt.pie(values,spaces,labels,colors,'%.1f%%',shadow=True,radius=1,startangle=90)
# l_text是餅圖對著文字大小,p_text是餅圖內文字大小
for t in p_text:
  t.set_size(5)
 
for t in l_text:
  t.set_size(6)

2.防止標籤重疊,可以將視窗設定的大一些

# 防止標籤重疊,可以將視窗設定的大一些
plt.figure(figsize=(20,6.5))

【原始碼】

import matplotlib.pyplot as plt
 
# 解決亂碼
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標籤
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號
 
 
# 值列表
values = [0.2515,0.3724,0.3336,0.0368,0.0057]
 
# 扇形之間的間距:設定為0就是各部分挨在一起,如果設定不為0就是突顯該部分
spaces = [0,0]
 
# 標籤列表
labels = ['中專','大專','本科','碩士','其他']
 
# 顏色列表
colors = ['dodgerblue','orangered','limegreen','cyan','gold']
 
# 防止標籤重疊,可以將視窗設定的大一些
plt.figure(figsize=(20,6.5))
 
# 將橫、縱座標軸標準化處理,保證餅圖是一個正圓,否則為橢圓
plt.axis('equal')
 
# 繪圖
patches,startangle=90)
 
# 給影象加上圖例
plt.legend(loc='upper left')
 
# 設定餅圖內文字大小
for t in p_text:
  t.set_size(6)
 
for t in l_text:
  t.set_size(9)
 
# 顯示
plt.show()

【新效果】

Matplotlib 繪製餅圖解決文字重疊的方法

到此這篇關於Matplotlib 繪製餅圖解決文字重疊的方法的文章就介紹到這了,更多相關Matplotlib 餅圖文字重疊內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!