Python seaborn distplot循环延迟评估

Python seaborn distplot循环延迟评估,python,matplotlib,ipython,seaborn,Python,Matplotlib,Ipython,Seaborn,我正在使用ipython笔记本并尝试使用以下函数导出seaborn distplots。如果我调用该函数并一次只使用一个变量执行,它就可以正常工作。如果我在循环中调用该函数,它将继续构建在上一个函数调用的distplot之上 我期望的输出是,每次在循环中调用函数时,该函数都会输出一个新的displaot。有没有办法强制执行评估或新的distplot def graph_extraversion (x): file_name = "extraversion_" + str(x) + "

我正在使用ipython笔记本并尝试使用以下函数导出seaborn distplots。如果我调用该函数并一次只使用一个变量执行,它就可以正常工作。如果我在循环中调用该函数,它将继续构建在上一个函数调用的distplot之上

我期望的输出是,每次在循环中调用函数时,该函数都会输出一个新的displaot。有没有办法强制执行评估或新的distplot

def graph_extraversion (x):


    file_name = "extraversion_" + str(x) + ".png"
    sns_plot = sns.distplot(Personalities[Personalities.labels1 ==x].extraversion)
    sns_plot = sns.distplot(df.extraversion)
    fig = sns_plot.get_figure()
    fig.savefig(file_name)
    new_stat = Personalities[Personalities.labels1 ==x].extraversion.describe()
    extraversion_drift = extraversion_median - new_stat[1]
    drift = extraversion_drift / extraversion_std
    if (drift >= 1) | (drift <= -1):
        return "1 std deviation or more"
    else:
        return "Less than one std deviation"
def图形_外倾(x):
file_name=“extraversion”+str(x)+“.png”
sns_plot=sns.distplot(personals[personals.labels1==x]。外向性)
sns_plot=sns.distplot(df.extraversion)
图=sns\u图。获取图()
图savefig(文件名)
new_stat=personals[personals.labels1==x].extraversion.descripe()
外倾漂移=外倾中值-新统计[1]
漂移=外倾漂移/外倾标准

如果(漂移>=1)|(漂移,那么这与matplotlib和闭合图有关

导入时需要附加代码:

import matplotlib.pyplot as plt
然后在函数末尾:

plt.close(fig)

这对seaborn和matplotlib的任何循环都会有帮助,你可能想看看。我看过帖子,但是有没有办法将函数返回给调用者并在循环中实例化一个新的图形。不需要额外的导入,只需
fig.close()
。使用figure对象似乎是更容易接受的方法。