小編給大家分享一下Python如何利用matplotlib做圖中圖及次坐標軸,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創新互聯主營電白網站建設的網絡公司,主營網站建設方案,app軟件開發公司,電白h5小程序定制開發搭建,電白網站營銷推廣歡迎電白等地區企業咨詢圖中圖
準備數據
import matplotlib.pyplot as plt fig = plt.figure() x = [1, 2, 3, 4, 5, 6, 7] y = [1, 3, 4, 2, 5, 8, 6]
- 大圖
首先確定大圖左下角的位置以及寬高:
注意,4個值都是占整個figure坐標系的百分比。在這里,假設figure的大小是10x10,那么大圖就被包含在由(1, 1)開始,寬8,高8的坐標系內。
# below are all percentage
left, bottom, width, height = 0.1, 0.1, 0.8, 0.8
ax1 = fig.add_axes([left, bottom, width, height]) # main axes
ax1.plot(x, y, 'r')
ax1.set_xlabel('x')
ax1.set_ylabel('y')
ax1.set_title('title')將大圖坐標系添加到figure中,顏色為r(red),取名為title:

- 小圖
接著,我們來繪制左上角的小圖,步驟和繪制大圖一樣,注意坐標系位置和大小的改變
ax2 = fig.add_axes([0.2, 0.6, 0.25, 0.25]) # inside axes
ax2.plot(y, x, 'b')
ax2.set_xlabel('x')
ax2.set_ylabel('y')
ax2.set_title('title inside 1')
最后,我們來繪制一個右下角的小圖。這里我們采用一種更簡單方法,即直接往plt里添加新的坐標系
# different method to add axes
####################################
plt.axes([0.6, 0.2, 0.25, 0.25])
plt.plot(y[::-1], x, 'g')
plt.xlabel('x')
plt.ylabel('y')
plt.title('title inside 2')注意對y進行了逆序處理

次坐標軸
有時候我們會用到次坐標軸,即在同個圖上有第2個y軸存在。同樣可以用matplotlib做到
第一個Y 坐標
import matplotlib.pyplot as plt import numpy as np x = np.arange(0, 10, 0.1) y1 = 0.05 * x**2 y2 = -1 *y1 fig, ax1 = plt.subplots()
第二個坐標軸
對ax1調用twinx()方法,生成如同鏡面效果后的ax2
接著進行繪圖, 將 y1, y2 分別畫在 ax1, ax2 上:
ax2 = ax1.twinx() # mirror the ax1
ax1.plot(x, y1, 'g-')
ax2.plot(x, y2, 'b-')
ax1.set_xlabel('X data')
ax1.set_ylabel('Y1 data', color='g')
ax2.set_ylabel('Y2 data', color='b')
plt.show()
同理:改變y2生成圖像

以上是“Python如何利用matplotlib做圖中圖及次坐標軸”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯成都網站設計公司行業資訊頻道!
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞標題:Python如何利用matplotlib做圖中圖及次坐標軸-創新互聯
文章路徑:http://www.js-pz168.com/article24/coheje.html
成都網站建設公司_創新互聯,為您提供網頁設計公司、小程序開發、虛擬主機、云服務器、網站建設、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯