Re: [Matplotlib-users] Two bugs in quiver?
Downloaded latest svn numpy and matplotlib and it works perfectly now. Thanks for sorting it out so quickly. George. 2009/1/20 Eric Firing efir...@hawaii.edu: George Nurser wrote: I think there may be two bugs in quiver. Actually just 1... 1. Quiver doesn't seem to accept 1D arrays X and Y if they are different sizes -- they need to be turned into 2d arrays with meshgrid for the program to work. With line 13 uncommented I get the following error message: This is a bug. It is fixed now in svn trunk and 98.5 maintenance branch. 2. Masking is not working properly with quiver, while it works fine with contour -- see the attached quivtest.png This is a numpy.ma bug that has been fixed in numpy. I don't know exactly when it was fixed, but after I tracked it down to numpy.ma, I updated my copy of numpy from svn, and the problem went away. Somehow, when a multiplication was done with broadcasting, the mask was getting handled and propagated incorrectly. I suspect this bug was present only for a moderate interval of time, because quiver with masked points worked for a long time before you ran into the bug. Eric -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
[Matplotlib-users] Two bugs in quiver?
I think there may be two bugs in quiver. 1. Quiver doesn't seem to accept 1D arrays X and Y if they are different sizes -- they need to be turned into 2d arrays with meshgrid for the program to work. With line 13 uncommented I get the following error message: File quivtest.py, line 13, in module ax.quiver(XT,YT,uu,vv) #fails File /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/axes.py, line 5533, in quiver q = mquiver.Quiver(self, *args, **kw) File /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/quiver.py, line 343, in __init__ self.XY = np.hstack((X[:,np.newaxis], Y[:,np.newaxis])) File /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/numpy/lib/shape_base.py, line 488, in hstack return _nx.concatenate(map(atleast_1d,tup),1) ValueError: array dimensions must agree except for d_0 2. Masking is not working properly with quiver, while it works fine with contour -- see the attached quivtest.png quiver.py: import numpy as np import numpy.ma as ma import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt XT = np.arange(10.) YT = np.arange(20.) uu = np.zeros([20,10])+7. vv = np.zeros([20,10])+3. fig = plt.figure() ax = fig.add_subplot(121) # ax.quiver(XT,YT,uu,vv) #fails XX,YY = np.meshgrid(XT,YT) ax.quiver(XX,YY,uu,vv) #Ok ax = fig.add_subplot(122) msk = XX**2+YY**2 50 uumsk = ma.masked_array(uu,mask=msk) vvmsk = ma.masked_array(vv,mask=msk) ax.contour(XT,YT,uumsk*XX) # works ax.quiver(XX,YY,uumsk,vvmsk) # gives strange shapes plt.show() fig.savefig('quivtest.png',dpi=100) George Nurser. attachment: quivtest.png-- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] Two bugs in quiver?
George Nurser wrote: I think there may be two bugs in quiver. Thanks for the report. I can reproduce both problems, and I will try to solve them. Eric 1. Quiver doesn't seem to accept 1D arrays X and Y if they are different sizes -- they need to be turned into 2d arrays with meshgrid for the program to work. With line 13 uncommented I get the following error message: File quivtest.py, line 13, in module ax.quiver(XT,YT,uu,vv) #fails File /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/axes.py, line 5533, in quiver q = mquiver.Quiver(self, *args, **kw) File /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/quiver.py, line 343, in __init__ self.XY = np.hstack((X[:,np.newaxis], Y[:,np.newaxis])) File /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/numpy/lib/shape_base.py, line 488, in hstack return _nx.concatenate(map(atleast_1d,tup),1) ValueError: array dimensions must agree except for d_0 2. Masking is not working properly with quiver, while it works fine with contour -- see the attached quivtest.png quiver.py: import numpy as np import numpy.ma as ma import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt XT = np.arange(10.) YT = np.arange(20.) uu = np.zeros([20,10])+7. vv = np.zeros([20,10])+3. fig = plt.figure() ax = fig.add_subplot(121) # ax.quiver(XT,YT,uu,vv) #fails XX,YY = np.meshgrid(XT,YT) ax.quiver(XX,YY,uu,vv) #Ok ax = fig.add_subplot(122) msk = XX**2+YY**2 50 uumsk = ma.masked_array(uu,mask=msk) vvmsk = ma.masked_array(vv,mask=msk) ax.contour(XT,YT,uumsk*XX) # works ax.quiver(XX,YY,uumsk,vvmsk) # gives strange shapes plt.show() fig.savefig('quivtest.png',dpi=100) George Nurser. -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] Two bugs in quiver?
George Nurser wrote: I think there may be two bugs in quiver. Actually just 1... 1. Quiver doesn't seem to accept 1D arrays X and Y if they are different sizes -- they need to be turned into 2d arrays with meshgrid for the program to work. With line 13 uncommented I get the following error message: This is a bug. It is fixed now in svn trunk and 98.5 maintenance branch. 2. Masking is not working properly with quiver, while it works fine with contour -- see the attached quivtest.png This is a numpy.ma bug that has been fixed in numpy. I don't know exactly when it was fixed, but after I tracked it down to numpy.ma, I updated my copy of numpy from svn, and the problem went away. Somehow, when a multiplication was done with broadcasting, the mask was getting handled and propagated incorrectly. I suspect this bug was present only for a moderate interval of time, because quiver with masked points worked for a long time before you ran into the bug. Eric -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users