繪圖: Python matplotlib簡介

ii_chengzi發表於2020-02-05

是基於numpy的一套Python工具包。這個包提供了豐富的 資料繪圖工具,主要用於繪製一些統計圖形。你可以找到很多各式各樣的 :

 

透過資料繪圖,我們可以將枯燥的數字轉換成容易被人們接受的圖表,從而讓人留下更加深刻的印象。實際上,早在一百多年前, 就曾經用統計圖形來說服英國政府,以改善軍隊的衛生狀況。

我們將以GDP資料為例子,看看如何繪製經典的餅圖和條形圖。

 

資料

下面是我們要使用的資料,為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物件,以便控制刻度以及刻度所對應的國家名。這與我們在pie plot所做的有些不同(pie plot也可以這樣實現,只是沒有必要而已)。

 

從兩個圖上看,亞洲國家的GDP還是很厲害的。西方的話就是美國一枝獨秀了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2674562/,如需轉載,請註明出處,否則將追究法律責任。

相關文章