创建某个图需要大量工作,因此我想通过创建一个f()返回图形的函数来自动执行此操作。
我想调用这个函数,以便我可以把结果放在一个子图中。无论如何我可以做到这一点吗?下面是一些解释我的意思的伪代码
figure_of_interest = f()
fig,ax = plt.subplots(nrows = 4,cols = 1)
ax[1].replace_with(figure_of_interest)
Run Code Online (Sandbox Code Playgroud) 如何使用matplotlib Figure对象作为子图?具体来说,我有一个创建matplotlib Figure对象的函数,我想将此作为子图包含在另一个Figure中。
简而言之,以下是我尝试过的简化代码:
fig1 = plt.figure(1, facecolor='white')
figa = mySeparatePlottingFunc(...)
figb = mySeparatePlottingFunc(...)
figc = mySeparatePlottingFunc(...)
figd = mySeparatePlottingFunc(...)
fig1.add_subplot(411, figure=figa)
fig1.add_subplot(412, figure=figb)
fig1.add_subplot(413, figure=figc)
fig1.add_subplot(414, figure=figd)
fig1.show()
Run Code Online (Sandbox Code Playgroud)
可悲的是,这失败了。我知道从函数调用返回的各个图是可行的-我做了一个figa.show(),...,figd.show()来确认它们没问题。我在上述代码块的最后一行得到的结果是fig1.show(),它是四个空图的集合,这些图具有框架以及x和y勾号/标签。
我已经做了大量的谷歌搜索,并进行了广泛的实验,但是很明显,我错过了一些非常微妙或令人尴尬的显而易见的东西(我会很高兴能够成为后者)解开)。
感谢您提供的任何建议!