【发布时间】:2016-08-24 09:27:43
【问题描述】:
我想使用 matplotlib 在一页中保存 6 个图形。这些图表都是对一个函数的调用,并在保存之前提出了以下代码进行测试:
def save_plot (output_DF, path = None):
fig = plt.figure(1)
sub1 = fig.add_subplot(321)
plt.plot(plot_BA(output_DF))
sub2 = fig.add_subplot(322)
sub2.plot(plot_merchantableVol(output_DF))
sub3 = fig.add_subplot(323)
sub3.plot(plot_topHeight(output_DF))
sub4 = fig.add_subplot(324)
sub4.plot(plot_GrTotVol(output_DF))
sub5 = fig.add_subplot(325)
sub5.plot(plot_SC(output_DF))
sub6 = fig.add_subplot(326)
sub6.plot(plot_N(output_DF))
plt.show()
实际上,我确实创建了一个包含 6 个空图的页面,但也为我调用的每个函数创建了 6 个单独的图。例如,plot_BA(output_DF) 是一个函数,我调用它来读取一个 csv 文件并创建一个绘图(单独它正在工作)。另一个是类似的功能,并且也可以正常工作。似乎我错过了将图表放在他们指定的无花果位置的东西。
这是我正在使用的功能之一。
def plot_BA(output_DF):
BA = output_DF.loc[:,['BA_Aw','BA_Sw', 'BA_Sb','BA_Pl']]
BAPlot = BA.plot()
plt.xlabel('Year', fontsize=14)
plt.ylabel('BA (m2)')
return True
有什么建议吗?
【问题讨论】:
-
那么到底是什么问题呢?这对我有用(至少如果 plot_X 每个都返回一个数组。你不应该在这个函数内绘图)。
-
plot_X 正在返回一个情节。我将把它的代码粘贴到主要问题中
-
好的...您必须将参数 subplot_ax 添加到您的函数中(并使用 sub1、sub2、... 调用它们)。然后在你的函数中使用 subplot_ax.plot() 。 xlabel 和 co 也是如此。但是这些函数的名称可能会有所不同(谷歌matplotlib的面向对象用法)。而且你不应该在里面调用 savefig。
标签: python matplotlib