利用matplotlib繪制柱狀圖
柱狀圖是一種用矩形柱來(lái)表示數(shù)據(jù)分類(lèi)的圖表,柱狀圖可以垂直繪制,也可以水平繪制,它的高度與其所表示的數(shù)值成正比關(guān)系。柱狀圖顯示了不同類(lèi)別之間的比較關(guān)系,圖表的水平軸 X 指定被比較的類(lèi)別,垂直軸 Y 則表示具體的類(lèi)別值。
繪制柱狀圖的命令為:
bar()
1.簡(jiǎn)單柱狀圖繪制
下面從建造一個(gè)簡(jiǎn)單的柱狀圖開(kāi)始,代碼如下
import matplotlib.pyplot as plt
data = [5, 20, 15, 25, 10]
plt.bar(range(len(data)), data)
plt.show() # 顯示圖形

2.修改x軸的標(biāo)簽
假設(shè)數(shù)據(jù)為選課的學(xué)生人數(shù),那么橫軸就是每個(gè)科目(subject),我們可以通過(guò)如下方式修改x軸的標(biāo)簽(數(shù)學(xué)(math),語(yǔ)文(language),英語(yǔ)(english),體育(sport),政治(politics))。
import matplotlib.pyplot as plt
data = [5, 10, 20, 15, 25]
subject = ['math', 'language', 'english', 'sports', 'politics']
plt.bar(subject, data)
plt.show()

也可以通過(guò)xticks函數(shù)修改,參考下方繪制并列柱狀圖例子。
3.設(shè)置柱體顏色
(1)一次性改變一個(gè)顏色
通過(guò) facecolor(fc) 參數(shù)可以設(shè)置柱體顏色,比如將柱體設(shè)置成紅色:
import matplotlib.pyplot as plt
data = [5, 10, 20, 15, 25]
subject = ['math', 'language', 'english', 'sports', 'politics']
plt.bar(subject, data, fc='r')
plt.show()

(2)一次性改變多個(gè)顏色
也可以通過(guò) color 參數(shù)一次性設(shè)置多個(gè)顏色
import matplotlib.pyplot as plt
data = [5, 10, 20, 15, 25]
subject = ['math', 'language', 'english', 'sports', 'politics']
plt.bar(subject, data, color=['r', 'b', 'y']) # 目前pyhton3.9版本不支持寫(xiě)成{color=’rby‘}
plt.show()

4.柱狀圖的美化
(1)柱狀圖內(nèi)部填充
hatch='' 可設(shè)置填充圖案,如/,-,+,o,O,.等
import matplotlib.pyplot as plt
data = [5, 10, 20, 15, 25]
subject = ['math', 'language', 'english', 'sports', 'politics']
plt.bar(subject, data, color=['r', 'b', 'y'], hatch='/')
plt.show()

(2)添加柱狀圖的邊框
相關(guān)的關(guān)鍵字參數(shù)為:edgecolor (ec),linestyle ( ls),linewidth (lw)
import matplotlib.pyplot as plt
data = [5, 10, 20, 15, 25]
subject = ['math', 'language', 'english', 'sports', 'politics']
plt.bar(subject, data, color=['r', 'b', 'y'], hatch='/', ec='g', ls='-', lw=5)
plt.show()
ec參數(shù)選擇邊框顏色,ls參數(shù)選擇邊框樣式,lw參數(shù)調(diào)整邊框?qū)挾取?/p>

5.繪制并列柱狀圖
主要需要控制好每個(gè)柱之間的距離,比如:
import numpy as np
import matplotlib.pyplot as plt # 導(dǎo)入所需庫(kù)
# 導(dǎo)入數(shù)據(jù)
x = np.arange(5)
x1 = [59, 82, 75, 65, 72]
x2 = [68, 82, 77, 89, 61]
x3 = [90, 71, 86, 53, 62]
# 設(shè)置所需參數(shù)
total_width, n = 0.8, 3 # (柱狀圖的默認(rèn)寬度值為 0.8)
width = total_width / n
x = x - (total_width - width) / 2 # 現(xiàn)在的x是每個(gè)并列柱的第一柱的中心橫坐標(biāo)
# 繪制圖
plt.bar(x, x1, width=width, label='language', fc='b')
plt.bar(x + width, x2, width=width, label='math', fc='r')
plt.bar(x + 2 * width, x3, width=width, label='english', fc='y')
plt.xticks(np.arange(5), ['tom', 'jack', 'bob', 'jone', 'lucy']) # 將橫坐標(biāo)修改為學(xué)生姓名
plt.legend() # 添加圖例
plt.show()

也可以通過(guò)
plt.ylabel('') # 添加y軸標(biāo)簽
plt.title('') # 添加圖標(biāo)題
進(jìn)而完善圖形,這里就不進(jìn)行演示了
6.繪制堆疊柱狀圖
可以通過(guò) bottom 參數(shù)繪制堆疊柱狀圖。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-484252.html
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(3)
x1 = np.random.random(3)
x2 = np.random.random(3)
# 中文亂碼處理
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 坐標(biāo)軸負(fù)號(hào)處理
plt.rcParams['axes.unicode_minus'] = False
plt.bar(x, x1, label='語(yǔ)文')
plt.bar(x, x2, bottom=x1, label='數(shù)學(xué)')
plt.legend()
plt.show()

7.繪制條形圖
barh方法繪制條形圖,其剩余畫(huà)圖方法與柱狀圖類(lèi)似文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-484252.html
import matplotlib.pyplot as plt
data = [36, 27, 15, 29, 10]
plt.barh(range(len(data)), data)
plt.show()

到了這里,關(guān)于Matplotlib繪制柱狀圖的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!