python中如何利用matplotlib畫多個(gè)并列的柱狀圖
首先如果柱狀圖中有中文,比如X軸和Y軸標(biāo)簽需要寫中文,解決中文無(wú)法識(shí)別和亂碼的情況,加下面這行代碼就可以解決了:
plt.rcParams['font.sans-serif'] = ['SimHei'] # 解決中文亂碼
以下總共展示了三種畫不同需求的柱狀圖:
畫多組兩個(gè)并列的柱狀圖:
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
labels = ['G1', 'G2', 'G3', 'G4', 'G5']
men_means = [20, 34, 30, 35, 27]
women_means = [25, 32, 34, 20, 25]
x = np.arange(len(labels)) # the label locations
width = 0.35 # the width of the bars
fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, men_means, width, label='Men')
rects2 = ax.bar(x + width/2, women_means, width, label='Women')
# Add some text for labels, title and custom x-axis tick labels, etc.
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(x)
ax.set_xticklabels(labels)
ax.legend()
def autolabel(rects):
"""Attach a text label above each bar in *rects*, displaying its height."""
for rect in rects:
height = rect.get_height()
ax.annotate('{}'.format(height),
xy=(rect.get_x() + rect.get_width() / 2, height),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='bottom')
autolabel(rects1)
autolabel(rects2)
fig.tight_layout()
plt.show()
繪制好的柱狀圖如下:

畫兩組5個(gè)并列的柱狀圖:
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei'] # 解決中文亂碼
labels = ['第一項(xiàng)', '第二項(xiàng)']
a = [4.0, 3.8]
b = [26.9, 48.1]
c = [55.6, 63.0]
d = [59.3, 81.5]
e = [89, 90]
x = np.arange(len(labels)) # 標(biāo)簽位置
width = 0.1 # 柱狀圖的寬度,可以根據(jù)自己的需求和審美來(lái)改
fig, ax = plt.subplots()
rects1 = ax.bar(x - width*2, a, width, label='a')
rects2 = ax.bar(x - width+0.01, b, width, label='b')
rects3 = ax.bar(x + 0.02, c, width, label='c')
rects4 = ax.bar(x + width+ 0.03, d, width, label='d')
rects5 = ax.bar(x + width*2 + 0.04, e, width, label='e')
# 為y軸、標(biāo)題和x軸等添加一些文本。
ax.set_ylabel('Y軸', fontsize=16)
ax.set_xlabel('X軸', fontsize=16)
ax.set_title('這里是標(biāo)題')
ax.set_xticks(x)
ax.set_xticklabels(labels)
ax.legend()
def autolabel(rects):
"""在*rects*中的每個(gè)柱狀條上方附加一個(gè)文本標(biāo)簽,顯示其高度"""
for rect in rects:
height = rect.get_height()
ax.annotate('{}'.format(height),
xy=(rect.get_x() + rect.get_width() / 2, height),
xytext=(0, 3), # 3點(diǎn)垂直偏移
textcoords="offset points",
ha='center', va='bottom')
autolabel(rects1)
autolabel(rects2)
autolabel(rects3)
autolabel(rects4)
autolabel(rects5)
fig.tight_layout()
plt.show()
繪制好的柱狀圖如下:

3. 要將柱狀圖的樣式畫成適合論文中使用的黑白并且?guī)Щy的樣式:
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] # 解決中文亂碼
labels = ['第一項(xiàng)', '第二項(xiàng)']
a = [50, 80]
b = [37, 69]
c = [78, 60]
d = [66, 86]
e = [80, 95]
# marks = ["o", "X", "+", "*", "O"]
x = np.arange(len(labels)) # 標(biāo)簽位置
width = 0.1 # 柱狀圖的寬度
fig, ax = plt.subplots()
rects1 = ax.bar(x - width * 2, a, width, label='a', hatch="...", color='w', edgecolor="k")
rects2 = ax.bar(x - width + 0.01, b, width, label='b', hatch="oo", color='w', edgecolor="k")
rects3 = ax.bar(x + 0.02, c, width, label='c', hatch="++", color='w', edgecolor="k")
rects4 = ax.bar(x + width + 0.03, d, width, label='d', hatch="XX", color='w', edgecolor="k")
rects5 = ax.bar(x + width * 2 + 0.04, e, width, label='e', hatch="**", color='w', edgecolor="k")
# 為y軸、標(biāo)題和x軸等添加一些文本。
ax.set_ylabel('Y', fontsize=16)
ax.set_xlabel('X', fontsize=16)
ax.set_title('標(biāo)題')
ax.set_xticks(x)
ax.set_xticklabels(labels)
ax.legend()

以上
總結(jié)
到此這篇關(guān)于python中如何利用matplotlib畫多個(gè)并列柱狀圖的文章就介紹到這了,更多相關(guān)python matplotlib畫并列柱狀圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django 允許局域網(wǎng)中的機(jī)器訪問你的主機(jī)操作
這篇文章主要介紹了Django 允許局域網(wǎng)中的機(jī)器訪問你的主機(jī)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-05-05
使用python采集腳本之家電子書資源并自動(dòng)下載到本地的實(shí)例腳本
這篇文章主要介紹了python采集jb51電子書資源并自動(dòng)下載到本地實(shí)例教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-10-10
python文字轉(zhuǎn)語(yǔ)音實(shí)現(xiàn)過程解析
這篇文章主要介紹了python文字轉(zhuǎn)語(yǔ)音實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
python之pexpect實(shí)現(xiàn)自動(dòng)交互的例子
今天小編就為大家分享一篇python之pexpect實(shí)現(xiàn)自動(dòng)交互的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-07-07
深入解析Python中BeautifulSoup4的基礎(chǔ)知識(shí)與實(shí)戰(zhàn)應(yīng)用
BeautifulSoup4正是一款功能強(qiáng)大的解析器,能夠輕松解析HTML和XML文檔,本文將介紹BeautifulSoup4的基礎(chǔ)知識(shí),并通過實(shí)際代碼示例進(jìn)行演示,感興趣的可以了解下2024-02-02
分享15 超級(jí)好用得 Python 實(shí)用技巧
這篇文章主要分享了15 超級(jí)好用得 Python 實(shí)用技巧,如果你對(duì)其中一個(gè)或多個(gè)感興趣,可以參考一下,希望對(duì)你能有所幫助2021-12-12
selenium+python實(shí)現(xiàn)登陸QQ郵箱并發(fā)送郵件功能
這篇文章主要介紹了selenium+python實(shí)現(xiàn)登陸QQ郵箱并發(fā)送郵件功能,本文給大家分享完整實(shí)例代碼,需要的朋友可以參考下2019-12-12

