Matplotlib: el mismo título para 8 plots trazadas usando un bucle

Tengo el siguiente código que genera 8 plots. Quiero poner las fases como títulos en cada ttwig. Así que he tenido éxito en poner la fase en la ttwig. Pero en lugar de tomar la fase correspondiente, siempre se toma la última fase para mostrar en cada gráfico. El archivo 8phases.txt tiene las siguientes 8 líneas que quiero poner en cada gráfico:

-1 1 -1 -1 1 1 1 1 1 1 -1 1 -1 -1 -1 1 1 -1 1 -1 -1 -1 -1 1 

Aquí está el código –

 import numpy as np import matplotlib.pyplot as plt D=12 n=np.arange(1,4) x = np.linspace(-D/2,D/2, 3000) I = np.array([125,300,75]) phase = np.genfromtxt('8phases.txt') I_phase = I*phase for i in I_phase: F = sum(m*np.cos(2*np.pi*l*x/D) for m,l in zip(i,n)) f,(ax1,ax2) = plt.subplots(2) for row in phase: ax1.plot(x,F,'g') ax1.set_title(row) plt.show() 

Creo que tu bucle más interno es innecesario; está recreando la misma ttwig 8 veces y actualiza el título 8 veces con cada uno de los 8 valores.

Si entendí lo que está pidiendo, creo que esto da los resultados correctos:

 ... for index,i in enumerate(I_phase): F = sum(m*np.cos(2*np.pi*l*x/D) for m,l in zip(i,n)) f,(ax1,ax2) = plt.subplots(2) ax1.plot(x,F,'g') ax1.set_title(phase[index]) ... 

(Normalmente usaría “i” en lugar de “índice”, pero ya habías usado “i”)