我正在编写一堆脚本和函数来处理天文数据。我有一组星系,我想在 3 面板图中绘制它们的一些不同属性。我这里有一个布局示例:

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

为了代码的模块化和可重用性,我想做一些事情,让我的函数返回一个matplotlib.figure.Figure对象,然后让调用者(函数或交互式会话)决定是否要show()该savefig对象或将其嵌入到更大的数字。但我似乎无法在文档或其他地方找到任何这方面的提示,这似乎不是人们经常做的事情。
关于最好的道路是什么有什么建议吗?我猜测使用是否axes_grid是解决方案,但对我来说它似乎不太干净并且与调用者无关。有什么建议么?
最好的解决方案是将图形布局逻辑与绘图逻辑分开。编写如下的绘图代码:
def three_panel_plot(data, ploting_args, ax1, ax2, ax3):
# what you do to plot
Run Code Online (Sandbox Code Playgroud)
因此,现在将数据转换为图像的代码将数据以及应该在何处绘制该数据作为参数。
如果你只想做一个,这很简单,如果你想做一个 3x3 网格,你只需要生成布局,然后循环轴集 + 数据。
您建议的方式(从绘图例程中返回一个对象)在 matplotlib 中会非常困难,内部结构太连接了。
| 归档时间: |
|
| 查看次数: |
2895 次 |
| 最近记录: |