Python Matplotlib繪制條形圖的全過(guò)程
條形圖
條形圖具有豐富的表現(xiàn)形式,常見(jiàn)的類型包括單組條形圖,多組條形圖,堆積條形圖和對(duì)稱條形圖等。
單組條形圖
條形圖的每種表現(xiàn)形式都可以繪制成垂直條形圖或水平條形圖,以單組條形圖的兩種繪制方式為例。
垂直條形圖
import matplotlib.pyplot as plt data = [10., 20., 5., 15.] plt.bar(range(len(data)), data) plt.show()

Tips:plt.plot()函數(shù)的作用是:接收兩個(gè)參數(shù),包括每個(gè)條形的x坐標(biāo)和每個(gè)條行的高度。
通過(guò)可選參數(shù)width,pyplot.bar()提供了一種控制條形圖中條狀寬度的方法:
import matplotlib.pyplot as plt data = [10., 20., 5., 15.] plt.bar(range(len(data)), data, width=0.5) plt.show()

水平條形圖
如果更喜歡水平條形外觀,就可以使用plt.barh()函數(shù),在用法方面與plt.bar()基本相同,但是修改條形寬度(或者在水平條形圖中應(yīng)該稱為高度)的參數(shù)需要使用height:
import matplotlib.pyplot as plt data = [10., 20., 5., 15.] plt.barh(range(len(data)), data, height=0.5) plt.show()

多組條形圖
當(dāng)需要比較不同年份相應(yīng)季度的銷量等此類需求時(shí),我們可能需要多組條形圖。
import numpy as np import matplotlib.pyplot as plt data = [[10., 20., 30., 20.],[40., 25., 53., 18.],[6., 22., 52., 19.]] x = np.arange(4) plt.bar(x + 0.00, data[0], color = 'b', width = 0.25) plt.bar(x + 0.25, data[1], color = 'g', width = 0.25) plt.bar(x + 0.50, data[2], color = 'r', width = 0.25) plt.show()

堆積條形圖
通過(guò)使用plt.bar()函數(shù)中的可選參數(shù),可以繪制堆積條形圖。
import matplotlib.pyplot as plt y_1 = [3., 25., 45., 22.] y_2 = [6., 25., 50., 25.] x = range(4) plt.bar(x, y_1, color = 'b') plt.bar(x, y_2, color = 'r', bottom = y_1) plt.show()

Tips:plt.bar()函數(shù)的可選參數(shù)bottom允許指定條形圖的起始值。
可以結(jié)合for循環(huán),利用延遲呈現(xiàn)機(jī)制堆疊更多的條形:
import numpy as np
import matplotlib.pyplot as plt
data = np.array([[5., 30., 45., 22.], [5., 25., 50., 20.], [1., 2., 1., 1.]])
x = np.arange(data.shape[1])
for i in range(data.shape[0]):
plt.bar(x, data[i], bottom = np.sum(data[:i], axis = 0))
plt.show()

對(duì)稱條形圖
一個(gè)簡(jiǎn)單且有用的技巧是對(duì)稱繪制兩個(gè)條形圖。例如想要繪制不同年齡段的男性與女性數(shù)量的對(duì)比:
import numpy as np import matplotlib.pyplot as plt w_pop = np.array([5., 30., 45., 22.]) m_pop = np.array( [5., 25., 50., 20.]) x = np.arange(4) plt.barh(x, w_pop) plt.barh(x, -m_pop) plt.show()

圖中女性人口的條形圖照常繪制。然而,男性人口的條形圖的條形圖的條形圖向左延伸,而不是向右延伸??梢允褂脭?shù)據(jù)的負(fù)值來(lái)快速實(shí)現(xiàn)對(duì)稱條形圖的繪制。
總結(jié)
到此這篇關(guān)于Python Matplotlib繪制條形圖的文章就介紹到這了,更多相關(guān)Python Matplotlib繪制條形圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux上運(yùn)行python腳本,SyntaxError:?invalid?syntax的解決
這篇文章主要介紹了linux上運(yùn)行python腳本,SyntaxError:?invalid?syntax的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
python如何控制進(jìn)程或者線程的個(gè)數(shù)
這篇文章主要介紹了python如何控制進(jìn)程或者線程的個(gè)數(shù),幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-10-10
python抓取某汽車網(wǎng)數(shù)據(jù)解析html存入excel示例
python抓取某汽車網(wǎng)經(jīng)銷商信息網(wǎng)頁(yè)數(shù)據(jù)解析html,這里提供一個(gè)示例演示,大家可以根據(jù)需要分析自己網(wǎng)站的數(shù)據(jù)2013-12-12
Python自動(dòng)化測(cè)試selenium指定截圖文件名的方法
這篇文章主要介紹了Python自動(dòng)化測(cè)試selenium指定截圖文件名方法,Selenium 支持 Web 瀏覽器的自動(dòng)化,它提供一套測(cè)試函數(shù),用于支持 Web 自動(dòng)化測(cè)試,下文基于python實(shí)現(xiàn)指定截圖文件名方法,需要的小伙伴可以參考一下2025-02-02
解決python-redis-lock分布式鎖的問(wèn)題
這篇文章主要介紹了python-redis-lock分布式鎖的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10

