Ich benutze ipython notebook und versuche die folgende funktion zu verwenden, um seaborn distplots zu exportieren. Es funktioniert gut, wenn ich die Funktion aufrufen und mit jeweils nur einer Variablen ausführen. Wenn ich die Funktion in einer Schleife aufruft, baut sie weiterhin auf dem Distplot des vorherigen Funktionsaufrufs auf.seaborn distplot loop faule auswertung
Meine gewünschte Ausgabe wäre, dass die Funktion jedes Mal, wenn sie in einer Schleife aufgerufen wird, eine neue Ausgabe ausgibt. Gibt es eine Möglichkeit, eine Evaluierung oder einen neuen Distrot zu erzwingen? Diese
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"
was ist das, was die distplot sieht aus wie nach einem Aufruf
Dies ist zwei Anrufe später in einer Schleife.
Wieder funktioniert dies ganz gut mit einem einzigen Aufruf und Ausführung, aber wenn geschlungen es immer wieder zu bauen.
Sie mögen http://stackoverflow.com/questions/23969619/plotting-with-seaborn-using-the-matplotlib-object-oriented-interface. – mwaskom
Ich schaute auf die Buchung, aber gibt es eine Möglichkeit, die Funktion an den Anrufer zurückzugeben und eine neue Figur in einer Schleife zu instanziieren. –