Matplotlib繪圖基礎(chǔ)之坐標(biāo)軸詳解
Matplotlib的坐標(biāo)軸是用于在繪圖中表示數(shù)據(jù)的位置的工具。
坐標(biāo)軸是圖像中的水平和垂直線,它們通常表示為 x 軸和 y 軸。
坐標(biāo)軸的作用是幫助觀察者了解圖像中數(shù)據(jù)的位置和大小,通常標(biāo)有數(shù)字或標(biāo)簽,以指示特定的值在圖像中的位置。
1. 坐標(biāo)軸范圍
Matplotlib繪制圖形時(shí),會(huì)自動(dòng)根據(jù)X,Y軸的數(shù)值,自動(dòng)確定其范圍,確保能夠涵蓋所有的數(shù)值。
比如:
_, ax = plt.subplots(2, 1) #X軸范圍0~8,Y軸范圍1~100 x = np.array(range(0, 8)) y = np.random.randint(1, 100, 8) ax[0].plot(x, y) #X軸范圍10~18,Y軸范圍100~200 x = np.array(range(10, 18)) y = np.random.randint(100, 200, 8) ax[1].plot(x, y)

可以看出,圖形中X軸,Y軸的范圍是根據(jù) x, y列表中數(shù)值的最大最小值來生成的。
有時(shí)候,為了看圖的局部位置,可以主動(dòng)設(shè)置X軸,Y軸的范圍,而不是依靠自動(dòng)生成。
比如:
_, ax = plt.subplots(2, 1) x = np.array(range(0, 8)) y = np.random.randint(1, 100, 8) ax[0].set_xlim(3, 6) #X軸范圍3~6 ax[0].plot(x, y) x = np.array(range(10, 18)) y = np.random.randint(100, 200, 8) ax[1].set_ylim(120, 150) #Y軸范圍120~150 ax[1].plot(x, y)

上面的示例設(shè)置的第一個(gè)圖的X軸范圍,第二個(gè)圖的Y軸范圍。
2. 雙坐標(biāo)軸
如果要把Y軸不同范圍的兩個(gè)曲線放在一起比較趨勢(shì)的話,就要用到雙坐標(biāo)軸。
比如:
fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) x = np.array(range(0, 8)) y1 = np.random.randint(1, 100, 8) ax.plot(x, y1, c='r') y2 = np.random.randint(100, 200, 8) ax.plot(x, y2, c='g')

上圖中紅色的線范圍在1~100之間,綠色的線范圍在100~200之間。
雖然放在一個(gè)圖中比較,看著卻像是在兩個(gè)子圖。
這時(shí),我們可以用兩個(gè)不同范圍的Y軸,從而能夠讓兩條曲線更好的比較。
比如:
fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) ax_twinx = ax.twinx() x = np.array(range(0, 8)) y1 = np.random.randint(1, 100, 8) ax.plot(x, y1, c='r') y2 = np.random.randint(100, 200, 8) ax_twinx.plot(x, y2, c='g')

左邊是紅線對(duì)應(yīng)的Y軸,右邊是綠線對(duì)應(yīng)的Y軸。
3. 反坐標(biāo)軸
最后,關(guān)于坐標(biāo)軸的設(shè)置,還有一個(gè)比較常用的設(shè)置是反轉(zhuǎn)坐標(biāo)軸。
坐標(biāo)軸的默認(rèn)順序是從小到大的,但是,對(duì)于一些特殊的圖表類型(如散點(diǎn)圖、條形圖、直方圖等),可以通過反轉(zhuǎn)坐標(biāo)軸來更好地展示數(shù)據(jù)點(diǎn)的分布情況。
3.1. 反轉(zhuǎn)X軸
fig = plt.figure() x = np.array(range(0, 8)) y = np.random.randint(1, 100, 8) ax1 = fig.add_subplot(211) ax1.plot(x, y) #反轉(zhuǎn)X軸 ax2 = fig.add_subplot(212) ax2.invert_xaxis() ax2.plot(x, y)

上例兩個(gè)子圖的X軸順序是相反的。
3.2. 反轉(zhuǎn)Y軸
fig = plt.figure() x = np.array(range(0, 8)) y = np.random.randint(1, 100, 8) ax1 = fig.add_subplot(211) ax1.plot(x, y) #反轉(zhuǎn)Y軸 ax2 = fig.add_subplot(212) ax2.invert_yaxis() ax2.plot(x, y)

上例兩個(gè)子圖的Y軸順序是相反的。
4. 總結(jié)回顧
這里介紹的主要是坐標(biāo)軸在展示分析結(jié)果的不同場(chǎng)景中的常用設(shè)置方法,
其他關(guān)于坐標(biāo)軸字體,顏色等等可以查閱官方文檔。
到此這篇關(guān)于Matplotlib繪圖基礎(chǔ)之坐標(biāo)軸詳解的文章就介紹到這了,更多相關(guān)Matplotlib坐標(biāo)軸內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
你需要學(xué)會(huì)的8個(gè)Python列表技巧
這篇文章主要介紹了8個(gè)常用的Python列表技巧,文中講解非常詳細(xì),幫助大家更好的學(xué)習(xí)Python,感興趣的朋友可以了解下2020-06-06
pycharm運(yùn)行和調(diào)試不顯示結(jié)果的解決方法
今天小編就為大家分享一篇pycharm運(yùn)行和調(diào)試不顯示結(jié)果的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11
Python+PyQt5實(shí)現(xiàn)簡(jiǎn)歷自動(dòng)生成工具
在當(dāng)今競(jìng)爭(zhēng)激烈的求職市場(chǎng)中,一份專業(yè)、規(guī)范的簡(jiǎn)歷是獲得面試機(jī)會(huì)的關(guān)鍵,本文介紹了一個(gè)基于PyQt5的自動(dòng)化簡(jiǎn)歷生成工具,有需要的小伙伴可以參考一下2025-05-05
利用Python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的完整實(shí)例
這篇文章主要給大家介紹了關(guān)于如何利用Python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
django 實(shí)現(xiàn)后臺(tái)從富文本提取純文本
這篇文章主要介紹了django 實(shí)現(xiàn)后臺(tái)從富文本提取純文本,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
python返回?cái)?shù)組索引的方法實(shí)現(xiàn)
本文介紹了三種在Python中返回?cái)?shù)組索引的方法,主要包括index()方法,enumerate()方法及使用numpy庫的argwhere()函數(shù),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
Python FastAPI+Celery+RabbitMQ實(shí)現(xiàn)分布式圖片水印處理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python FastAPI如何結(jié)合Celery以及RabbitMQ實(shí)現(xiàn)簡(jiǎn)單的分布式圖片水印處理系統(tǒng),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-04-04

