溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中matplotlib如何繪制經(jīng)典的餅圖和條形圖

發(fā)布時間:2021-12-02 18:00:47 來源:億速云 閱讀:300 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Python中matplotlib如何繪制經(jīng)典的餅圖和條形圖,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

matplotlib是基于numpy的一套Python工具包。這個包提供了豐富的數(shù)據(jù)繪圖工具,主要用于繪制一些統(tǒng)計圖形。你可以找到很多各式各樣的 例子:

Python中matplotlib如何繪制經(jīng)典的餅圖和條形圖

通過數(shù)據(jù)繪圖,我們可以將枯燥的數(shù)字轉(zhuǎn)換成容易被人們接受的圖表,從而讓人留下更加深刻的印象。實際上,早在一百多年前, 南丁格爾就曾經(jīng)用統(tǒng)計圖形來說服英國政府,以改善軍隊的衛(wèi)生狀況。

我們將以GDP數(shù)據(jù)為例子,看看如何繪制經(jīng)典的餅圖和條形圖。

數(shù)據(jù)

下面是我們要使用的數(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所占的百分比。每一小塊的面積代表了占比的多少:

Python中matplotlib如何繪制經(jīng)典的餅圖和條形圖

具體代碼如下,可以看到我們主要使用了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值越高:

Python中matplotlib如何繪制經(jīng)典的餅圖和條形圖

代碼如下:

"""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è)資訊頻道!

向AI問一下細節(jié)

免責(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)容。

AI