J'ai ce code, qui est censé renvoyer plusieurs graphiques, pour une raison que je ne peux pas comprendre (je n'ai jamais eu ce problème). J'obtiens plusieurs graphiques, mais au fur et à mesure qu'il parcourt la boucle, le graphique après le premier contient tous les précédents.

for x in np.arange(0,3):
    t1= table.iloc[x,2]
    t2= table.iloc[44,2]
    dts = np.arange(-0.02,0.02,0.0001)
    cc = np.zeros(len(dts))
    for i,dt in enumerate(dts):
        n1,v=np.histogram(t1,899*100)
        n2,v=np.histogram(t2-dt,bins=v)
        cc[i] = np.corrcoef(n1,n2)[0,1]
    plt.plot(dts,cc)
    #plt.title(str(table[table['ClusterNames']==test1.iloc[x,0]].iloc[0,0])+'_'+str(table[table['ClusterNames']==test1.iloc[x,1]].iloc[0,0]))
    filename='step'+str(x).zfill(6)+'.png'
    plt.savefig(filename, form='png', dpi = 96, transparent = True)

Qu'est-ce que je fais mal?

Merci!

1
Gergely Szarka 22 avril 2020 à 17:39

2 réponses

Meilleure réponse

Il existe de nombreuses façons de procéder. Pour effacer le tracé après les sauvegardes, vous pouvez ajouter plt.clf() à la fin de votre boucle. Pour tout tracer sur une seule page, vous pouvez utiliser plt.subplot2grid OU plt.subplots.

1
David Smolinski 22 avril 2020 à 15:01

Si vous voulez que chaque figure dans une fenêtre différente, vous devez ajouter plt.figure() avant plt.plot()

1
Orestis Zekai 22 avril 2020 à 14:42