生成 matplotlib 绘图的函数应将图形或轴作为输入,并且仅在需要时选择性地创建这些图形或轴。他们应该返回创建的对象以供进一步使用。最后,他们不应该打电话plt.show()
,或者如果必须的话,提供选择退出选项。
例如,对于单轴绘图函数,它可能看起来像
def plottingfunction(*arguments, ax=None, show=True):
if ax is None:
fig, ax = plt.subplots()
else:
fig = ax.figure
# do something with fig and ax here, e.g.
line, = ax.plot(*arguments)
if show:
plt.show()
return fig, ax, line
如果您遵循这样的结构,那么在调用该函数后很容易执行您需要执行的任何操作
fig, _, _ = plottingfunction([1,2,3], [3,2,4], show=False)
fig.savefig("myplot.png")
plt.show()