[英]Reusing matplotlib subplots' fig and axes
在图中创建 2 x 2 子图并保存该图。
示例代码:
def plot_all(i):
fig, axes = plt.subplots(nrows = 2, ncols = 2, figsize = (20,10)) ## Takes the most time
fig.suptitle('title')
axes[0,0].plot(np.random.randn(3))
axes[0,1].plot(np.random.randn(3))
axes[1,0].plot(np.random.randn(3))
axes[1,1].plot(np.random.randn(3))
fig.savefig('my_plot{}.jpg'.format(i))
plt.close(fig)
for i in range(10000):
plot_all(i)
我认为'plot_all' function 的前两行在每次迭代中花费了大部分时间,所以我尝试重用 fig 和 axes 这样就没有必要为下一次连续绘图再次创建这些。 有没有办法再次保存 fig 和 axes 以供下一次迭代?
我会这样做:
def plot_all(i, axes):
axes[0,0].plot(np.random.randn(3))
axes[0,1].plot(np.random.randn(3))
axes[1,0].plot(np.random.randn(3))
axes[1,1].plot(np.random.randn(3))
fig, axes = plt.subplots(nrows = 2, ncols = 2, figsize = (20,10))
fig.suptitle('title')
for i in range(3):
plot_all(i, axes)
fig.savefig('my_plot{}.jpg'.format(i))
for ax in axes.flat:
ax.cla()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.