這里說的餅圖是軟件開發領域的,餅圖是圓形統計圖,整個圖表的區域代表100%或全部數據,餅圖中顯示的餅圖區域代表數據部分的百分比。餅圖的各個部分稱為楔形,楔形的弧長決定了餅圖中楔形的面積,楔形的面積確定零件相對于整體的相對量子或百分比。餅圖經常用于業務演示中,因為它們可以快速總結業務活動,例如銷售,運營等。餅形圖還大量用于調查結果,新聞文章,資源使用圖中。那么如何使用Python繪制餅圖?
使用Python Matplotlib繪制簡單的餅圖
可以使用pyplot模塊中的pie()函數繪制餅圖。以下python 代碼示例使用pie()函數繪制了一個餅圖。
默認情況下,pyplot的pie()功能沿逆時針方向排列餅圖中的餅形或楔形。
例:
# import the pyplot library
import matplotlib.pyplot as plotter
# The slice names of a population distribution pie chart
pieLabels = 'Asia', 'Africa', 'Europe', 'North America', 'South America', 'Australia'
# Population data
populationShare = [59.69, 16, 9.94, 7.79, 5.68, 0.54]
figureObject, axesObject = plotter.subplots()
# Draw the pie chart
axesObject.pie(populationShare,
labels=pieLabels,
autopct='%1.2f',
startangle=90)
# Aspect ratio - equal means pie is a circle
axesObject.axis('equal')
plotter.show()
在餅圖中創建楔形以爆炸:
使用餅圖函數的explode參數,可以使餅圖的楔形從餅圖的其余楔形中爆炸。
explode 是一個元組,其中每個元素都對應于餅圖的楔形。
元組的長度應等于餅圖中的餅圖數。
除此以外 matplotlib 將引發類型的異常 ValueError。
例:
explodeTuple = (0.1, 0.0, 0.0, 0.0, 0.0, 0.0)
# Draw the pie chart
axesObject.pie(populationShare, explode=explodeTuple,
labels=pieLabels,
autopct='%1.2f',
startangle=90)
在上面的代碼片段中,pie()函數與元組 一起傳遞 給explode參數。元組中只有第一個元素 是小數,而其他所有元素都為零,這將使餅圖的第一個楔形圖與其余的圖看起來不同。
使餅圖的多個楔形爆炸:
上面的示例僅使餅圖的楔形之一爆炸。
在以下代碼段中,將一個元組提供給pie()函數的explode參數。元組的第一個和最后一個條目為非零分數,從而使餅圖的第一個和最后一個楔形爆炸。
基于元組中元素的數值,楔形會爆炸到離餅圖中心點相對較高或較低的距離。
負值將使楔形出現在與指定的原始位置相反的方向上。
例:
explodeTuple = (0.1, 0.0, 0.0, 0.0, 0.0, 0.8)
# Draw the pie chart
axesObject.pie(populationShare, explode=explodeTuple,
labels=pieLabels,
autopct='%1.2f',
startangle=90)
在使用Matplotlib繪制的餅圖中自定義顏色:
可以使用pie()函數的參數顏色來自定義餅圖中楔形的顏色。colors參數是一個元組,其中包含要為餅圖的楔形循環的顏色列表。
例:
# import the pyplot library
import matplotlib.pyplot as plotter
# Guest age group
ageGroupLabel = 'Below 5', '5-10', '10-15', '15-20', '20-30', '30-40', '40-50', '50-60', '60-80', '80-100', 'Above 100'
# Number of Guests expected in age group
guestNumbers = [5, 10, 10, 15, 10, 30, 25, 25, 20, 15, 10]
figureObject, axesObject = plotter.subplots()
explode = (0.4, 0.0, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0, 0.3)
colors = ("red", "green", "orange", "cyan", "brown", "grey", "blue", "indigo", "beige", "yellow")
# Draw the pie chart
axesObject.pie(guestNumbers,
explode = explode,
colors = colors,
labels = ageGroupLabel,
autopct = '%1.2f',
startangle = 90)
# Aspect ratio
axesObject.axis('equal')
plotter.show()
在輸出中,由于在達到“ 100歲以上”年齡組時所有顏色均已用盡,因此將從頭開始再次進行顏色設置,即將紅色分配給與該年齡段的兒童相同的“ 100歲以上”年齡組。
自定義Matplotlib餅圖:
1.可以自定義Matplotlib.pyplot繪制的餅圖的幾個方面。
2.startangle參數將餅圖旋轉指定的度數。旋轉是逆時針方向,并在餅圖的X軸上執行。
3.可以使用pie()函數的shadow參數提供陰影效果。傳遞True將使陰影出現在餅圖邊緣下方。默認情況下,shadow的值為False,并且餅圖不會有陰影。
4.可以使用楔子屬性參數進一步定制餅圖的楔子。可以使用名稱值對描述楔形屬性的python字典作為楔形屬性參數來傳遞。
5.通過將frame參數設置為True,將圍繞餅圖繪制軸框架。
6.arc()函數的Autopct參數控制百分比在楔形中的顯示方式。可以指定以%開頭的格式字符串,也可以指定函數。例如,%。1f將以25.0、35.2等格式顯示百分比值。%.2f %%將以50.25、75.5等格式顯示百分比值。
例:
import matplotlib.pyplot as plotter
# Distribution of n-grams in a paragraph - maximum wordlength 5
wedgeLabels = ("Unigram", "Bigram", "Trigram", "Four-gram", "Five-gram", "Others")
# Percentage of n-grams
ngramPercent = (5, 5, 10, 5, 10, 65)
figureObject, axesObject = plotter.subplots()
axesObject.pie(ngramPercent,
labels = wedgeLabels,
shadow = True,
frame = True,
startangle = 120,
autopct = '%.1f%%',
wedgeprops = { 'linewidth' : 3,
'edgecolor' : "orange" })
axesObject.axis('equal')
plotter.show()
以上就是關于如何使用Python繪制餅圖的全部內容,想了解更多關于Python的信息,請繼續關注中培偉業。