所以我有一个函数可以输入一些数据,并返回一个 matplotlib 图。这就是它的样子(因为我在我的函数中处理非常具体的数据,我不能提供一个最小的工作示例,但我的问题更多的是关于一般的东西)。 def foo(data): fig, ax= plt.subplots() ... return fig此功能运行良好,如果我想要显示图片,我只需调用foo(data).show(),一切都很好。我的问题是,我愿意在代码的另一部分(不在同一个文件中)在更一般的数字中使用这些数字。例如,我可能有foo(data1),foo(data2)并且foo(data3)我想在同一个 matplotlib 图形中排成一行。实际上,我不知道在 Matplotlib 中是否可以做到这一点,以及如何做到这一点。
1 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
在函数之外创建你的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
添加回答
举报
0/150
提交
取消