python繪制分組條形圖的示例代碼
數(shù)據(jù)導(dǎo)入
我們經(jīng)常會(huì)遇到對(duì)比多個(gè)統(tǒng)計(jì)量隨時(shí)間變化的圖像,比如想知道中國(guó)、美國(guó)以及歐盟最近幾年GDP變化,如下表所示,單位是萬(wàn)億美元。
| 中國(guó) | 美國(guó) | 歐盟 | |
|---|---|---|---|
| 2018 | 13.89 | 20.53 | 15.98 |
| 2019 | 14.28 | 21.38 | 15.69 |
| 2020 | 14.69 | 21.06 | 15.37 |
| 2021 | 17.82 | 23.32 | 17.19 |
| 2022 | 17.96 | 25.46 | 16.64 |
首先,把這些數(shù)值寫(xiě)入python
import numpy as np
years = np.arange(2018, 2023)
areas = ("PRC", "USA", "EU")
GDPS = {
'PRC': (13.89, 14.28, 14.69, 17.82, 17.96),
'USA': (20.53, 21.38, 21.06, 23.32, 25.46),
'EU': (15.98, 15.69, 15.37, 17.19, 16.64),
}多組條形圖
然后,調(diào)用bar畫(huà)圖,由于每個(gè)年份都要繪制中國(guó)、美國(guó)以及歐盟三個(gè)條形圖,所以需要合理規(guī)劃每個(gè)條形圖占據(jù)的寬度。在bar中,默認(rèn)每組條形圖的x坐標(biāo)均為整數(shù),故而下面將每個(gè)數(shù)據(jù)條的寬度設(shè)為0.25,并調(diào)用bar_label為這些條形圖添加標(biāo)簽,以區(qū)分中美歐三個(gè)地區(qū)的劃分
import matplotlib.pyplot as plt
x = np.arange(len(years))
width = 0.25
n = 0
for area, gdp in GDPS.items():
offset = width * n
rects = plt.bar(x + offset, gdp, width, label=area)
plt.bar_label(rects, padding=3)
n += 1
plt.ylabel('GDP/$trilion')
plt.ylim(10, 28)
plt.xticks(x + width, years.astype(str))
plt.legend(loc='upper left')
plt.show()其中,legend用于調(diào)控圖例所在位置,upper left表示將圖例放在圖像的左上角。如果不想精心設(shè)置,則可設(shè)為best,那么matplotli將會(huì)自行挑選一個(gè)合適的位置放置圖例。
效果如下

其中,藍(lán)色表示中國(guó),橘色表示美國(guó),綠色表示歐盟。從這個(gè)圖就可以非常直觀地看出,三者自2018到2022年的GDP變化情況。
堆疊條形圖
如果想更加直觀地查看2018到2022年間,中、美、歐三個(gè)地區(qū)的GDP增長(zhǎng)情況,那么比較好的方案是繪制堆疊條形圖。
堆疊條形圖的繪制邏輯是,先畫(huà)一個(gè)數(shù)據(jù)條,然后在這個(gè)數(shù)據(jù)條之上,再畫(huà)一個(gè)數(shù)據(jù)條,所以想看增長(zhǎng)率,就要用2022年的GDP減去2018年的,
GDPs = {
"2018": np.array([13.89, 20.53, 15.98]),
"2022": np.array([17.96, 25.46, 16.64]),
}
GDPs['2022'] -= GDPs['2018']然后設(shè)置一個(gè)條形圖的底部,這樣每次繪制條形圖的時(shí)候,都以這個(gè)bottom為底,就可以起到堆疊的效果
bottom = np.zeros(3)
for lbl, gdp in GDPs.items():
p = plt.bar(areas, gdp, label=lbl, bottom=bottom)
plt.bar_label(p, label_type='center')
bottom += gdp
plt.ylabel('GDP/$trilion')
plt.legend(loc="upper right")
plt.show()結(jié)果如圖所示

可見(jiàn),這五年中國(guó)的GDP漲了4萬(wàn)億美元,美國(guó)則接近5萬(wàn)億,而歐盟則增長(zhǎng)甚微,給人一種有人退歐的感覺(jué)。
到此這篇關(guān)于python繪制分組條形圖的示例代碼的文章就介紹到這了,更多相關(guān)python分組條形圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pytorch中的VGG實(shí)現(xiàn)修改最后一層FC
今天小編就為大家分享一篇Pytorch中的VGG實(shí)現(xiàn)修改最后一層FC,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
Python 如何實(shí)現(xiàn)文件自動(dòng)去重
這篇文章主要介紹了Python 實(shí)現(xiàn)文件自動(dòng)去重操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
python如何通過(guò)閉包實(shí)現(xiàn)計(jì)算器的功能
這篇文章主要介紹了python如何通過(guò)閉包實(shí)現(xiàn)計(jì)算器的功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
Python基礎(chǔ)教程(一)——Windows搭建開(kāi)發(fā)Python開(kāi)發(fā)環(huán)境
這篇文章主要介紹了Windows如何搭建開(kāi)發(fā)Python開(kāi)發(fā)環(huán)境,幫助大家開(kāi)始學(xué)習(xí)Python,感興趣的朋友可以了解下2020-07-07
Python分支結(jié)構(gòu)(switch)操作簡(jiǎn)介
這篇文章主要介紹了Python分支結(jié)構(gòu)(switch)操作簡(jiǎn)介,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
python中sklearn庫(kù)predict及python sklearn linearmodel(
Scikit-learn(sklearn)是機(jī)器學(xué)習(xí)中常用的第三方模塊,對(duì)常用的機(jī)器學(xué)習(xí)方法進(jìn)行了封裝,包括回歸(Regression)、降維(Dimensionality Reduction)、分類(Classfication)、聚類(Clustering)等方法,今天小編給大家分享python中sklearn庫(kù)predict的問(wèn)題,感興趣的朋友一起看看吧2024-02-02
python-opencv 將連續(xù)圖片寫(xiě)成視頻格式的方法
今天小編就為大家分享一篇python-opencv 將連續(xù)圖片寫(xiě)成視頻格式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01

