为了账号安全,请及时绑定邮箱和手机立即绑定

在另一个 matplotlib 图形中使用 matplotlib 图形?

在另一个 matplotlib 图形中使用 matplotlib 图形?

泛舟湖上清波郎朗 2021-12-21 16:38:52
所以我有一个函数可以输入一些数据,并返回一个 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


查看完整回答
反对 回复 2021-12-21
  • 1 回答
  • 0 关注
  • 150 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信