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

Reply via email to