python繪制分組條形圖的示例代碼
數(shù)據(jù)導(dǎo)入
我們經(jīng)常會遇到對比多個統(tǒng)計量隨時間變化的圖像,比如想知道中國、美國以及歐盟最近幾年GDP變化,如下表所示,單位是萬億美元。
| 中國 | 美國 | 歐盟 | |
|---|---|---|---|
| 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ù)值寫入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畫圖,由于每個年份都要繪制中國、美國以及歐盟三個條形圖,所以需要合理規(guī)劃每個條形圖占據(jù)的寬度。在bar中,默認每組條形圖的x坐標均為整數(shù),故而下面將每個數(shù)據(jù)條的寬度設(shè)為0.25,并調(diào)用bar_label為這些條形圖添加標簽,以區(qū)分中美歐三個地區(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將會自行挑選一個合適的位置放置圖例。
效果如下

其中,藍色表示中國,橘色表示美國,綠色表示歐盟。從這個圖就可以非常直觀地看出,三者自2018到2022年的GDP變化情況。
堆疊條形圖
如果想更加直觀地查看2018到2022年間,中、美、歐三個地區(qū)的GDP增長情況,那么比較好的方案是繪制堆疊條形圖。
堆疊條形圖的繪制邏輯是,先畫一個數(shù)據(jù)條,然后在這個數(shù)據(jù)條之上,再畫一個數(shù)據(jù)條,所以想看增長率,就要用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è)置一個條形圖的底部,這樣每次繪制條形圖的時候,都以這個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é)果如圖所示

可見,這五年中國的GDP漲了4萬億美元,美國則接近5萬億,而歐盟則增長甚微,給人一種有人退歐的感覺。
到此這篇關(guān)于python繪制分組條形圖的示例代碼的文章就介紹到這了,更多相關(guān)python分組條形圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python基礎(chǔ)教程(一)——Windows搭建開發(fā)Python開發(fā)環(huán)境
這篇文章主要介紹了Windows如何搭建開發(fā)Python開發(fā)環(huán)境,幫助大家開始學(xué)習(xí)Python,感興趣的朋友可以了解下2020-07-07
Python分支結(jié)構(gòu)(switch)操作簡介
這篇文章主要介紹了Python分支結(jié)構(gòu)(switch)操作簡介,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
python中sklearn庫predict及python sklearn linearmodel(
Scikit-learn(sklearn)是機器學(xué)習(xí)中常用的第三方模塊,對常用的機器學(xué)習(xí)方法進行了封裝,包括回歸(Regression)、降維(Dimensionality Reduction)、分類(Classfication)、聚類(Clustering)等方法,今天小編給大家分享python中sklearn庫predict的問題,感興趣的朋友一起看看吧2024-02-02
python-opencv 將連續(xù)圖片寫成視頻格式的方法
今天小編就為大家分享一篇python-opencv 將連續(xù)圖片寫成視頻格式的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01

