[英]Matplotlib's Figure and Axes explanation
我對matplotlib來說真的很新,不過我知道它可以非常強大。 我一直在閱讀一些教程和示例,了解matplotlib的圖和軸如何工作真的很麻煩。 我用附圖說明了我想要理解的內容。
我知道如何以英寸為單位創建一定大小的圖形實例。 然而,困擾我的是如何在每個子圖中創建子圖,然后在相對坐標(底部= 0,左= 0,頂部= 1,右邊= 1)中創建軸,如圖所示。 所以,例如我想創建一個“父”繪圖區域(比如說(6英寸,10英寸))。 然后,我想創建兩個子圖區域,每個區域的大小(3英寸,3英寸),頂部距離為1英寸,兩個垂直子圖區域之間為2英寸,底部為1英寸。 然后,在左邊的1英寸空間和寫入的2英寸空間。 同時,我希望能夠獲得相對於主要繪圖區域的子圖區域的坐標。 然后,在第一個子圖區域內,我想創建2個軸實例,其中Axis 1具有相對於Subplot Area1(0.1,0.7,0.7,0.2)和Axes 2(0.1,0.2,0.7,0.5)的坐標。 當然,我希望能夠在這些軸上繪圖,例如, ax1.plot()....
如果你能提供一個示例代碼來實現它,那么我可以研究它。 非常感謝您的幫助!
subplot
和Axes
對象實際上是一回事。 你在matplotlib中描述的並沒有真正的“subplot”。 您可以使用gridspec
創建三個Axes
對象,而無需將它們放在“子圖”中。
在圖中創建Axes
實例有幾種不同的方法。
fig.add_axes
將在給定的位置創建一個Axes
實例(在圖坐標中給出它[left,bottom,width,height]
(即0,0
是左下角, 1,1
是右上角)。
fig.add_subplot
還將創建一個Axes
實例。 在這種情況下,不是給它創建一個矩形,而是給它你想要的子圖的行數和列數,然后是plot_number
,其中plot_number
從1開始,首先在行之間遞增,最大值為nrows * ncols
。
例如,要在2行和2列的網格中創建左上角的軸,可以執行以下操作:
fig.add_subplot(2,2,1)
或速記
fig.add_subplot(221)
還有一些可自定義的方法來創建Axes
,例如gridspec
和subplot2grid
,它們可以輕松創建許多不同形狀和大小的子圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.