From: <fer...@us...> - 2007-07-30 06:04:43
|
Revision: 3629 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3629&view=rev Author: fer_perez Date: 2007-07-29 23:04:41 -0700 (Sun, 29 Jul 2007) Log Message: ----------- cleaner fill implementation Modified Paths: -------------- trunk/py4science/examples/schrodinger/schrod_fdtd.py Modified: trunk/py4science/examples/schrodinger/schrod_fdtd.py =================================================================== --- trunk/py4science/examples/schrodinger/schrod_fdtd.py 2007-07-30 02:04:46 UTC (rev 3628) +++ trunk/py4science/examples/schrodinger/schrod_fdtd.py 2007-07-30 06:04:41 UTC (rev 3629) @@ -80,6 +80,16 @@ v[npts/2:npts/2+thickness] = v0 return v +def fillax(x,y,*args,**kw): + """Fill the space between an array of y values and the x axis. + + All args/kwargs are passed to the pylab.fill function. + Returns the value of the pylab.fill() call. + """ + xx = np.concatenate((x,np.array([x[-1],x[0]],x.dtype))) + yy = np.concatenate((y,np.zeros(2,y.dtype))) + return pylab.fill(xx, yy, *args,**kw) + #============================================================================= # # Simulation Constants. Be sure to include decimal points on appropriate @@ -213,14 +223,12 @@ # in light red, as well as drawing a green line at the wavepacket's total # energy, in the same units the potential is being plotted. if Vmax !=0 : + # Scaling factor for energies, so they fit in the same plot as the + # wavefunctions Efac = ymax/2.0/Vmax V_plot = V*Efac pylab.plot(X,V_plot,':k',zorder=0) # Potential line. - # reverse x and y2 so the polygon fills in order - y1 = free(N) # lower boundary for polygon drawing - x = np.concatenate( (X,X[::-1]) ) - y = np.concatenate( (y1,V_plot[::-1]) ) - pylab.fill(x, y, facecolor='y', alpha=0.2,zorder=0) + fillax(X,V_plot, facecolor='y', alpha=0.2,zorder=0) # Plot the wavefunction energy, in the same scale as the potential pylab.axhline(E*Efac,color='g',label='Energy',zorder=1) pylab.legend(loc='lower right') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |