簡體   English   中英

在另一個matplotlib圖中使用matplotlib數字?

[英]Use matplotlib figures in another matplotlib figure?

所以我有一個函數可以輸入一些數據,並返回一個matplotlib圖。 這就是看起來像(因為我在我的函數中處理非常具體的數據,我不能提供一個最小的工作示例,但我的問題更多是關於一般的東西)。

 def foo(data):
     fig, ax= plt.subplots()
     ...
     return fig

這個功能非常好用,如果我想要圖片出現,我只需要調用foo(data).show() ,一切都很好。

我的問題是,我願意在代碼的另一部分(不在同一個文件中)中使用更一般的數字。 例如,我可能有foo(data1)foo(data2)foo(data3) ,我想在同一個matplotlib圖中連續放入。

實際上,我不知道是否可以在Matplotlib中做到這一點,以及如何做到這一點。

在函數外部創建你的figax ,並將ax作為參數傳遞一個默認值(所以我們可以在函數中創建ax以保持向后兼容性:

def foo(data, ax=None):
   if ax is None:
      _, ax = plt.subplots()

這允許您仍然像以前一樣調用foo(data)

如果您需要根據要求多次繪制此“功能”,則:

fig, axes = plt.subplots(nrows=3)

foo(data1, axes[0])
foo(data2, axes[1])
foo(data3, axes[2])

如果還需要fig ,則將其作為參數傳遞給函數,或通過ax.figure訪問它。 代碼將變為:

def foo(data, ax=None):
   if ax is None:
      fig, ax = plt.subplots()
   else:
      fig, ax = ax.figure, ax

暫無
暫無

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

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