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

所以我有一个函数可以输入一些数据,并返回一个 matplotlib 图。这就是它的样子(因为我在我的函数中处理非常具体的数据,我不能提供一个最小的工作示例,但我的问题更多的是关于一般的东西)。


 def foo(data):

     fig, ax= plt.subplots()

     ...

     return fig

此功能运行良好,如果我想要显示图片,我只需调用foo(data).show(),一切都很好。


我的问题是,我愿意在代码的另一部分(不在同一个文件中)在更一般的数字中使用这些数字。例如,我可能有foo(data1),foo(data2)并且foo(data3)我想在同一个 matplotlib 图形中排成一行。


实际上,我不知道在 Matplotlib 中是否可以做到这一点,以及如何做到这一点。


泛舟湖上清波郎朗
浏览 151回答 1
1回答

蓝山帝景

在函数之外创建你的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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python