簡體   English   中英

將matplotlib圖嵌入大圖

[英]Embed matplotlib figure in larger figure

我正在編寫一堆用於處理天文數據的腳本和函數。 我有一組星系,我想針對它們在3面板圖中繪制一些不同的屬性。 我這里有一個布局示例:

在此處輸入圖片說明

現在,這不是問題。 但是有時候,我只想為一個星系創建這個圖。 在其他情況下,我想制作一個更大的圖,其中包含每個子圖,每個子圖均由三層窗格結構組成,例如此模型:

在此處輸入圖片說明

為了我的代碼的模塊化和可重用性,我想做一些事情,只是讓我的函數返回一個matplotlib.figure.Figure對象,然后讓調用者-函數或交互式會話-決定是否要show()savefig對象或將其嵌入更大的圖中。 但是我似乎在文檔中或其他地方都找不到任何暗示,這似乎並不是人們經常這樣做。

關於什么是最好的選擇,有什么建議嗎? 我已經推測是否使用axes_grid將是解決方案,但是對我來說,它似乎並不干凈且與調用方無關。 有什么建議么?

最好的解決方案是將圖形布局邏輯與繪圖邏輯分開。 編寫類似以下內容的繪圖代碼:

 def three_panel_plot(data, ploting_args, ax1, ax2, ax3):
     # what you do to plot

因此,現在轉換數據->圖像的代碼將數據以及應該在哪里繪制數據作為參數。

如果只想做一個,那很容易,如果要做一個3x3的網格,只需要生成布局,然后在軸集+數據上循環即可。

在matplotlib中,您建議的方式(將對象從繪圖例程中退出)非常困難,因為內部結構過於緊密。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM