def plot_parameters(gid, data): print("Plotting the wavepacket parameters of group '"+str(gid)+"'") if len(data) == 0: return # Plot the time evolution of the parameters P, Q, S, p and q fig = figure(figsize=(12,12)) ax = [ fig.add_subplot(4,2,i) for i in xrange(1,8) ] for datum in data: timegrid, PI = datum Phist, Qhist, Shist, phist, qhist = PI ax[0].plot(timegrid, real(Phist), label=r"$\Re P$") ax[0].grid(True) ax[0].set_title(r"$\Re P$") ax[1].plot(timegrid, imag(Phist), label=r"$\Im P$") ax[1].grid(True) ax[1].set_title(r"$\Im P$") ax[2].plot(timegrid, real(Qhist), label=r"$\Re Q$") ax[2].grid(True) ax[2].set_title(r"$\Re Q$") ax[3].plot(timegrid, imag(Qhist), label=r"$\Im Q$") ax[3].grid(True) ax[3].set_title(r"$\Im Q$") ax[4].plot(timegrid, real(qhist), label=r"$q$") ax[4].grid(True) ax[4].set_title(r"$q$") ax[5].plot(timegrid, real(phist), label=r"$p$") ax[5].grid(True) ax[5].set_title(r"$p$") ax[6].plot(timegrid, real(Shist), label=r"$S$") ax[6].grid(True) ax[6].set_title(r"$S$") fig.suptitle("Wavepacket parameters") fig.savefig("wavepacket_parameters_group"+str(gid)+GD.output_format) close(fig) # Plot the time evolution of the parameters P, Q, S, p and q # This time plot abs/angle instead of real/imag fig = figure(figsize=(12,12)) ax = [ fig.add_subplot(4,2,i) for i in xrange(1,8) ] for datum in data: timegrid, PI = datum Phist, Qhist, Shist, phist, qhist = PI ax[0].plot(timegrid, abs(Phist), label=r"$|P|$") ax[0].grid(True) ax[0].set_title(r"$|P|$") ax[1].plot(timegrid, ComplexMath.cont_angle(Phist), label=r"$\arg P$") ax[1].grid(True) ax[1].set_title(r"$\arg P$") ax[2].plot(timegrid, abs(Qhist), label=r"$|Q|$") ax[2].grid(True) ax[2].set_title(r"$|Q|$") ax[3].plot(timegrid, ComplexMath.cont_angle(Qhist), label=r"$\arg Q$") ax[3].grid(True) ax[3].set_title(r"$\arg Q$") ax[4].plot(timegrid, real(qhist), label=r"$q$") ax[4].grid(True) ax[4].set_title(r"$q$") ax[5].plot(timegrid, real(phist), label=r"$p$") ax[5].grid(True) ax[5].set_title(r"$p$") ax[6].plot(timegrid, real(Shist), label=r"$S$") ax[6].grid(True) ax[6].set_title(r"$S$") fig.suptitle("Wavepacket parameters") fig.savefig("wavepacket_parameters_absang_group"+str(gid)+GD.output_format) close(fig)
def plot_parameters(data, index=0): """Plot the data parameters (P, Q, S, p, q) over time. For each new I{index} we start a new figure. """ print("Plotting the parameters of data block '"+str(index)+"'") timegrid, Phist, Qhist, Shist, phist, qhist = data # Plot the time evolution of the parameters P, Q, S, p and q fig = figure(figsize=(12,12)) ax = fig.add_subplot(4,2,1) for item in Phist: ax.plot(timegrid, real(item), label=r"$\Re P$") ax.grid(True) ax.set_title(r"$\Re P$") ax = fig.add_subplot(4,2,2) for item in Phist: ax.plot(timegrid, imag(item), label=r"$\Im P$") ax.grid(True) ax.set_title(r"$\Im P$") ax = fig.add_subplot(4,2,3) for item in Qhist: ax.plot(timegrid, real(item), label=r"$\Re Q$") ax.grid(True) ax.set_title(r"$\Re Q$") ax = fig.add_subplot(4,2,4) for item in Qhist: ax.plot(timegrid, imag(item), label=r"$\Im Q$") ax.grid(True) ax.set_title(r"$\Im Q$") ax = fig.add_subplot(4,2,5) for item in qhist: ax.plot(timegrid, real(item), label=r"$q$") ax.grid(True) ax.set_title(r"$q$") ax = fig.add_subplot(4,2,6) for item in phist: ax.plot(timegrid, real(item), label=r"$p$") ax.grid(True) ax.set_title(r"$p$") ax = fig.add_subplot(4,2,7) for item in Shist: ax.plot(timegrid, real(item), label=r"$S$") ax.grid(True) ax.set_title(r"$S$") fig.suptitle("Wavepacket parameters") fig.savefig("wavepacket_parameters_block"+str(index)+GD.output_format) close(fig) # Plot the time evolution of the parameters P, Q, S, p and q # This time plot abs/angle instead of real/imag fig = figure(figsize=(12,12)) ax = fig.add_subplot(4,2,1) for item in Phist: ax.plot(timegrid, abs(item), label=r"$|P|$") ax.grid(True) ax.set_title(r"$|P|$") ax = fig.add_subplot(4,2,2) for item in Phist: ax.plot(timegrid, ComplexMath.cont_angle(item), label=r"$\arg P$") ax.grid(True) ax.set_title(r"$\arg P$") ax = fig.add_subplot(4,2,3) for item in Qhist: ax.plot(timegrid, abs(item), label=r"$|Q|$") ax.grid(True) ax.set_title(r"$|Q|$") ax = fig.add_subplot(4,2,4) for item in Qhist: ax.plot(timegrid, ComplexMath.cont_angle(item), label=r"$\arg Q$") ax.grid(True) ax.set_title(r"$\arg Q$") ax = fig.add_subplot(4,2,5) for item in qhist: ax.plot(timegrid, real(item), label=r"$q$") ax.grid(True) ax.set_title(r"$q$") ax = fig.add_subplot(4,2,6) for item in phist: ax.plot(timegrid, real(item), label=r"$p$") ax.grid(True) ax.set_title(r"$p$") ax = fig.add_subplot(4,2,7) for item in Shist: ax.plot(timegrid, abs(item), label=r"$S$") ax.grid(True) ax.set_title(r"$S$") fig.suptitle("Wavepacket parameters") fig.savefig("wavepacket_parameters_abs_ang_block"+str(index)+GD.output_format) close(fig) # Plot the complex trajectory of the parameters P fig = figure() ax = fig.gca() for item in Phist: ax.plot(real(item), imag(item), "-o", label=r"Trajectory $P$") ax.grid(True) ax.set_title(r"Trajectory of $P$") fig.savefig("wavepacket_parameters_trajectoryP_block"+str(index)+GD.output_format) close(fig) # Plot the complex trajectory of the parameters Q fig = figure() ax = fig.gca() for item in Qhist: ax.plot(real(item), imag(item), "-o", label=r"Trajectory $Q$") ax.grid(True) ax.set_title(r"Trajectory of $Q$") fig.savefig("wavepacket_parameters_trajectoryQ_block"+str(index)+GD.output_format) close(fig)