
ESCALAR VECTORES Y PONER ESCALA CON quiver y quiverkey
Publicado por MIGUEL (2 intervenciones) el 07/11/2013 13:36:51
Tengo el siguiente codigo basado en la libreria basemap de matplotlib
para dibujar un mapa con trayectoria de un vehiculo y unos vectores de velocidad
Obtengo una grafica como la imagen 1 (VER imagen 1), donde casi no se ven los vectores.
Tengo dos problemas:
1) Cuando intento escalar la imagen con esta instrucción:
Q = m.quiver(xv,yv,udat,vdat, angles='xy', scale=400, color ='black')
los vectores me salen enormes, no importa la escala que ponga. ( VER Imagen 2)
Sólo quiero los vectores un poco mas grande
2) Quiero poner una escala de modulo del vector en función de su longitud, las unidades son m/s como los vectores.
Esto se hace con quiverkey y lo explica bastante bien en la fig 4.9 de este enlace.
http://physics.nmt.edu/~raymond/software/python_notes/paper004.html
Mi problema es que da igual las unidades que ponga, el vector no cambia de tamaño. No parece escalarse correctamente. Podemos ver el vector arriba a la derecha con 1m/s de unidades.La instrucción es:
qk = plt.quiverkey(Q, 0.95, 1.05, 1, '1 m/s', labelpos='W', color ='r')
¿ Estoy haciendo algo mal ? Parece no estar entendiendo algo.
Adjunto la funcion entera:
para dibujar un mapa con trayectoria de un vehiculo y unos vectores de velocidad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
# Para hacer el mapa con proyeccion Transverse Mercator
# setup Transverse Mercator Projection.
m = Basemap(width=Fwidth, height=Fheight, projection='tmerc',
resolution='c', lat_0=truelat, lon_0=truelon)
...
# cordenadas del mapa
# Convert trajectory to map projection coords. xpt,ypt = m(lon,lat).
xpT,ypT = m(Meta.GPS.LON,Meta.GPS.LAT)
#dibujo trayectoria
m.plot(xpT,ypT,linewidth=1.5, color='r')
...
# Dibujo vectores.
Q = m.quiver(xv,yv,udat,vdat, angles='xy', color ='black') #or specify, e.g., width=0.003, scale=400)
qk = plt.quiverkey(Q, 0.95, 1.05, 1, '1 m/s', labelpos='W', color ='r')
Obtengo una grafica como la imagen 1 (VER imagen 1), donde casi no se ven los vectores.
Tengo dos problemas:
1) Cuando intento escalar la imagen con esta instrucción:
Q = m.quiver(xv,yv,udat,vdat, angles='xy', scale=400, color ='black')
los vectores me salen enormes, no importa la escala que ponga. ( VER Imagen 2)
Sólo quiero los vectores un poco mas grande
2) Quiero poner una escala de modulo del vector en función de su longitud, las unidades son m/s como los vectores.
Esto se hace con quiverkey y lo explica bastante bien en la fig 4.9 de este enlace.
http://physics.nmt.edu/~raymond/software/python_notes/paper004.html
Mi problema es que da igual las unidades que ponga, el vector no cambia de tamaño. No parece escalarse correctamente. Podemos ver el vector arriba a la derecha con 1m/s de unidades.La instrucción es:
qk = plt.quiverkey(Q, 0.95, 1.05, 1, '1 m/s', labelpos='W', color ='r')
¿ Estoy haciendo algo mal ? Parece no estar entendiendo algo.
Adjunto la funcion entera:
- drawmap2.zip(1,8 KB)
Valora esta pregunta


0