我有一个带有循环的方法,该方法可以创建由给定数据帧的列表输入给出的多个箱形图:
def create_boxplots(data_frame):
x_axis_attr = [columnA, columnB, columnC]
for index in range(len(x_axis_attr)):
boxplot = sns.boxplot(x=data_frame[x_axis_attr[index]])
plot_dict.update({"boxplot " + x_axis_attr[index]: boxplot})
return plot_dict
图的保存由另一个模块处理,因此创建的图将在dict()中返回。
事实证明,这些图未保存在不同的对象中:
[<matplotlib.axes._subplots.AxesSubplot object at 0x181640D0>,
<matplotlib.axes._subplots.AxesSubplot object at 0x181640D0>,
<matplotlib.axes._subplots.AxesSubplot object at 0x181640D0>]
即使我将图形保存为:boxplot.get_figure()
:
[<matplotlib.figure.Figure object at 0x18C37F30>,
<matplotlib.figure.Figure object at 0x18C37F30>,
<matplotlib.figure.Figure object at 0x18C37F30>]
注意:
1.如果在循环中执行plt.show()
,则会正确显示所有箱形图
我如何确保所有地块都有自己的对象,并且不共享内存? 预先感谢