[英]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中做到這一點,以及如何做到這一點。
在函數外部創建你的fig
和ax
,並將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.