Python 将matplotlib图形嵌入到较大的图形中

Python 将matplotlib图形嵌入到较大的图形中,python,matplotlib,Python,Matplotlib,我正在编写一系列用于处理天文数据的脚本和函数。我有一组星系,我想在一个三面图中画出一些不同的性质。我这里有一个布局示例: 现在,这不是问题。但有时,我只想为一个星系绘制这个图。在其他情况下,我想制作一个更大的图,由子图组成,每个子图都由三个+窗格结构组成,就像这个模型: 为了代码的模块化和可重用性,我想做一些事情,让我的函数返回matplotlib.figure.figure对象,然后让调用者(函数或交互式会话)决定是否显示()或savefig对象或将其嵌入一个较大的图形中。但我似乎在文档或

我正在编写一系列用于处理天文数据的脚本和函数。我有一组星系,我想在一个三面图中画出一些不同的性质。我这里有一个布局示例:

现在,这不是问题。但有时,我只想为一个星系绘制这个图。在其他情况下,我想制作一个更大的图,由子图组成,每个子图都由三个+窗格结构组成,就像这个模型:

为了代码的模块化和可重用性,我想做一些事情,让我的函数返回
matplotlib.figure.figure
对象,然后让调用者(函数或交互式会话)决定是否显示()或
savefig
对象或将其嵌入一个较大的图形中。但我似乎在文档或其他地方找不到任何这方面的提示,人们似乎并不经常这样做


有什么建议是最好的选择吗?我曾猜测使用axes\u grid是否是解决方案,但对我来说,它似乎不太干净,也不知道调用方。有什么建议吗?

最好的解决方案是将图形布局逻辑与绘图逻辑分开。编写如下所示的绘图代码:

 def three_panel_plot(data, ploting_args, ax1, ax2, ax3):
     # what you do to plot
现在,转换数据->图像的代码将数据作为参数,并将数据打印到何处

如果你只想做一个,很简单,如果你想做一个3x3的网格,你只需要生成布局,然后在轴集合+数据上循环


在matplotlib中,您建议的方式(从打印例程中返回对象)将非常困难,因为内部连接太多。

谢谢您,这就是我最后要做的。尽管这确实让我有点沮丧,但如果能够从像轴一样的图形中构建一个图形,那就太好了……要做到这一点(我认为)需要对后端的工作方式进行重大的重新分解。这就是说,我已经说服自己,这种方式比制作“超级人物”更模块化。如果您将签名排序为
def my_plot(ax,*args,**kwargs)
,则它们与内置打印命令的预期签名模式相匹配。这个问题已经提得够多了(我已经回答了两三次了),我应该在某个地方写一个规范的例子。