python使用Matplotlib改變坐標(biāo)軸的默認(rèn)位置
使用Matplotlib繪制的圖表的默認(rèn)坐標(biāo)軸是在左下角的,這樣對(duì)于一些函數(shù)的顯示不是非常方便,要改變坐標(biāo)軸的默認(rèn)顯示方式主要要使用gca()方法
plt.gca()表示 Get current axis,使用這個(gè)方法我們可以獲得整張圖表的坐標(biāo)對(duì)象,這樣我們就可以對(duì)坐標(biāo)進(jìn)行處理了,像移動(dòng)位置,設(shè)置顏色之類(lèi)的,類(lèi)似plt.gcf()這個(gè)是 Get current figure 即獲得當(dāng)前圖表的圖像,對(duì)圖像進(jìn)行處理。
我們可以定義一個(gè)變量接收這個(gè)值:
ax = plt.gca()
接下來(lái)還要了解一個(gè)方法 :spine() 這個(gè)單詞的意思是脊梁,我的理解就是包圍圖表的線條,例如:
其余的兩條邊也是一樣的道理,那么,如果我們要移動(dòng)坐標(biāo)到中心點(diǎn),那么我們可以移動(dòng)其中的兩條邊,并隱藏兩條邊即可:
ax.spines[‘right'].set_color(‘none')
ax.spines[‘top'].set_color(‘none')
ax.xaxis.set_ticks_position(‘bottom')
ax.yaxis.set_ticks_position(‘left')
這時(shí)候做坐標(biāo)軸只剩下兩條線,接下來(lái)就是指定x軸以及y軸的綁定:
ax.spines[‘bottom'].set_position((‘data', 0))
ax.spines[‘left'].set_position((‘data', 0))
這樣寫(xiě)的結(jié)果是將x,y軸綁定到特定位置,至于這兩個(gè)的值,其實(shí)試幾次就好理解了,上面的這種情況是坐標(biāo)軸的交點(diǎn)是(0, 0),如果改成:
ax.spines[‘bottom'].set_position((‘data', 0))
ax.spines[‘left'].set_position((‘data', 1))
這樣兩個(gè)坐標(biāo)軸的交點(diǎn)就是(1,0).
完整代碼:
import matplotlib.pyplot as plt import numpy as np x = np.linspace(-5, 5, 100) y1 = 0.5 * x y2 = x * x plt.figure() plt.xlabel('X axis...') plt.ylabel('Y axis...') #設(shè)置坐標(biāo)軸的文字標(biāo)簽 ax = plt.gca() # get current axis 獲得坐標(biāo)軸對(duì)象 ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') # 將右邊 上邊的兩條邊顏色設(shè)置為空 其實(shí)就相當(dāng)于抹掉這兩條邊 ax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left') # 指定下邊的邊作為 x 軸 指定左邊的邊為 y 軸 ax.spines['bottom'].set_position(('data', 0)) #指定 data 設(shè)置的bottom(也就是指定的x軸)綁定到y(tǒng)軸的0這個(gè)點(diǎn)上 ax.spines['left'].set_position(('data', 0)) plt.plot(x, y1, linestyle='--') plt.plot(x, y2) plt.show()
效果如下:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
細(xì)數(shù)nn.BCELoss與nn.CrossEntropyLoss的區(qū)別
今天小編就為大家整理了一篇細(xì)數(shù)nn.BCELoss與nn.CrossEntropyLoss的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02對(duì)pycharm 修改程序運(yùn)行所需內(nèi)存詳解
今天小編就為大家分享一篇對(duì)pycharm 修改程序運(yùn)行所需內(nèi)存詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python中的二分查找Bisect庫(kù)使用實(shí)戰(zhàn)
在算法和數(shù)據(jù)結(jié)構(gòu)中,二分查找是一種高效的搜索算法,可用于有序數(shù)據(jù)集合的查找,Python的bisect庫(kù)為我們提供了便捷的二分查找實(shí)現(xiàn),本文將深入探討B(tài)isect庫(kù)的使用方法、性能優(yōu)勢(shì),并通過(guò)豐富的示例代碼展示其在實(shí)際應(yīng)用中的靈活性和效果2024-01-01Python求區(qū)間正整數(shù)內(nèi)所有素?cái)?shù)之和的方法實(shí)例
這篇文章主要給大家介紹了Python對(duì)區(qū)間正整數(shù)內(nèi)所有素?cái)?shù)之和的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10django自帶的server 讓外網(wǎng)主機(jī)訪問(wèn)方法
今天小編就為大家分享一篇django自帶的server 讓外網(wǎng)主機(jī)訪問(wèn)方法。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05python 實(shí)現(xiàn)數(shù)據(jù)庫(kù)中數(shù)據(jù)添加、查詢與更新的示例代碼
這篇文章主要介紹了python 實(shí)現(xiàn)數(shù)據(jù)庫(kù)中數(shù)據(jù)添加、查詢與更新的示例代碼,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12python多進(jìn)程及通信實(shí)現(xiàn)異步任務(wù)的方法
這篇文章主要介紹了python多進(jìn)程及通信實(shí)現(xiàn)異步任務(wù)需求,本人也是很少接觸多進(jìn)程的場(chǎng)景,對(duì)于python多進(jìn)程的使用也是比較陌生的。在接觸了一些多進(jìn)程的業(yè)務(wù)場(chǎng)景下,對(duì)python多進(jìn)程的使用進(jìn)行了學(xué)習(xí),覺(jué)得很有必要進(jìn)行一個(gè)梳理總結(jié),感興趣的朋友一起看看吧2022-05-05詳解Python之Scrapy爬蟲(chóng)教程N(yùn)BA球員數(shù)據(jù)存放到Mysql數(shù)據(jù)庫(kù)
這篇文章主要介紹了詳解Python之Scrapy爬蟲(chóng)教程N(yùn)BA球員數(shù)據(jù)存放到Mysql數(shù)據(jù)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01