您好,登錄后才能下訂單哦!
小編給大家分享一下Python中matplotlib如何繪制經(jīng)典的餅圖和條形圖,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
matplotlib是基于numpy的一套Python工具包。這個包提供了豐富的數(shù)據(jù)繪圖工具,主要用于繪制一些統(tǒng)計圖形。你可以找到很多各式各樣的 例子:
通過數(shù)據(jù)繪圖,我們可以將枯燥的數(shù)字轉(zhuǎn)換成容易被人們接受的圖表,從而讓人留下更加深刻的印象。實際上,早在一百多年前, 南丁格爾就曾經(jīng)用統(tǒng)計圖形來說服英國政府,以改善軍隊的衛(wèi)生狀況。
我們將以GDP數(shù)據(jù)為例子,看看如何繪制經(jīng)典的餅圖和條形圖。
下面是我們要使用的數(shù)據(jù),為2011年GDP前十的國家以及其具體的GDP:
USA 15094025 China 11299967 India 4457784 Japan 4440376 Germany 3099080 Russia 2383402 Brazil 2293954 UK 2260803 France 2217900 Italy 1846950
我們先來繪制餅圖 (pie plot)。餅圖適用于表達各個國家GDP所占的百分比。每一小塊的面積代表了占比的多少:
具體代碼如下,可以看到我們主要使用了matplotlib.pyplot工具包:
# Make a pie chart# This script is written by Vamei, http://www.cnblogs.com/vamei# you may freely use it.import matplotlib.pyplot as plt# quants: GDP# labels: country namelabels = [] quants = []# Read datafor line in file('../data/major_country_gdp'): info = line.split() labels.append(info[0]) quants.append(float(info[1]))# make a square figureplt.figure(1, figsize=(6,6))# For China, make the piece explode a bitdef explode(label, target='China'): if label == target: return 0.1 else: return 0 expl = map(explode,labels)# Colors used. Recycle if not enough.colors = ["pink","coral","yellow","orange"]# Pie Plot# autopct: format of "percent" string;plt.pie(quants, explode=expl, colors=colors, labels=labels, autopct='%1.1f%%',pctdistance=0.8, shadow=True) plt.title('Top 10 GDP Countries', bbox={'facecolor':'0.8', 'pad':5}) plt.show()
下面我們嘗試一下條形圖(bar plot)。用每個長條的高度代表每個國家的GDP,長條越高,GDP值越高:
代碼如下:
"""Make a pie chart This script is written by Vamei, http://www.cnblogs.com/vamei you may freely use it."""import matplotlib.pyplot as pltimport numpy as np# quants: GDP# labels: country namelabels = [] quants = []# Read datafor line in file('../data/major_country_gdp'): info = line.split() labels.append(info[0]) quants.append(float(info[1])) width = 0.4ind = np.linspace(0.5,9.5,10)# make a square figurefig = plt.figure(1, figsize=(12,6)) ax = fig.add_subplot(111)# Bar Plotax.bar(ind-width/2,quants,width,color='coral')# Set the ticks on x-axisax.set_xticks(ind) ax.set_xticklabels(labels)# labelsax.set_xlabel('Country') ax.set_ylabel('GDP (Billion US dollar)')# titleax.set_title('Top 10 GDP Countries', bbox={'facecolor':'0.8', 'pad':5}) plt.show()
該代碼中我們利用了ax對象,以便控制刻度以及刻度所對應(yīng)的國家名。這與我們在pie plot所做的有些不同(pie plot也可以這樣實現(xiàn),只是沒有必要而已)。
以上是“Python中matplotlib如何繪制經(jīng)典的餅圖和條形圖”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。