Estoy buscando una forma de trazar rectángulos llenos en un mapa base. Podría dibujar fácilmente los bordes del rectángulo usando el método drawgreatcircle
, pero no puedo encontrar una manera de llenar realmente estos rectángulos (especificando color y alfa).Cómo dibujar rectángulos en un mapa base
Respuesta
Puede agregar un matplotlib.patches.Polygon() directamente a sus ejes. La pregunta es si quieres que tus rectángulos definan las coordenadas de la trama (líneas rectas en la trama) o en las coordenadas del mapa (círculos grandes en la trama). De cualquier forma, especifique los vértices en las coordenadas del mapa y luego los transfiera a las coordenadas del trazado llamando a la instancia del mapa base (m()
en el ejemplo siguiente), construya un polígono usted mismo y agréguelo manualmente a los ejes que se van a representar.
Para los rectángulos definidos en la parcela coordenadas, he aquí un ejemplo:
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
def draw_screen_poly(lats, lons, m):
x, y = m(lons, lats)
xy = zip(x,y)
poly = Polygon(xy, facecolor='red', alpha=0.4)
plt.gca().add_patch(poly)
lats = [ -30, 30, 30, -30 ]
lons = [ -50, -50, 50, 50 ]
m = Basemap(projection='sinu',lon_0=0)
m.drawcoastlines()
m.drawmapboundary()
draw_screen_poly(lats, lons, m)
plt.show()
Para los rectángulos definidos en las coordenadas del mapa, utilice el mismo método, pero interpolar su línea en el espacio de mapa antes de transformarse para trazar coordenadas. Para cada segmento de línea, usted tiene que hacer:
lats = np.linspace(lat0, lat1, resolution)
lons = np.linspace(lon0, lon1, resolution)
Entonces transformar estas coordenadas del mapa para trazar coordenadas (como el anterior, con m()
) y de nuevo crear un polígono con las coordenadas de la trama.
respuesta Similar al anterior, pero el código más básico:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
map = Basemap(projection='cyl')
map.drawmapboundary(fill_color='aqua')
map.fillcontinents(color='coral',lake_color='aqua')
map.drawcoastlines()
x1,y1 = map(-25,-25)
x2,y2 = map(-25,25)
x3,y3 = map(25,25)
x4,y4 = map(25,-25)
poly = Polygon([(x1,y1),(x2,y2),(x3,y3),(x4,y4)],facecolor='red',edgecolor='green',linewidth=3)
plt.gca().add_patch(poly)
plt.show()
- 1. Dibujar rectángulos dinámicamente en SVG
- 2. Dibujar múltiples rectángulos en un xml dibujable
- 3. Cómo dibujar un mapa mental
- 4. dibujar rectángulos simples en un JFrame en Java
- 5. Cómo dibujar un mapa de bits en Android usando OpenGL
- 6. dibujar ruta en el mapa en iphone
- 7. ¿Cómo dibujar texto en lienzo?
- 8. ¿Cómo dibujar una ruta con un mapa de bits?
- 9. Cómo dibujar un MKPolyline en un MapView?
- 10. C#: Dibujar un mapa de bits en otro, con transparencia
- 11. Cómo dibujar una vista de texto en un mapa de bits (sin dibujar nunca en la pantalla)
- 12. Cómo dibujar círculos, rectángulos manualmente en el reproductor de videos Android
- 13. ¿Cómo dibujar un círculo transparente?
- 14. ¿Diferencia (XOR) entre dos rectángulos, como rectángulos?
- 15. Cómo dibujar figuras sin completar en Android?
- 16. Algoritmo para reducir la imagen a rectángulos?
- 17. ¿Cómo dibujar en un JLabel?
- 18. Embalaje máximo de rectángulos en un círculo
- 19. Cómo dibujar un rectángulo en MouseDown/Move C#
- 20. Rectángulos sucios
- 21. ¿Cómo reconocer rectángulos en esta imagen?
- 22. Cómo dibujar un rectángulo?
- 23. Dibujo de elipses en las proyecciones del mapa base matplotlib
- 24. cómo voltear un mapa de puntos para dibujar una textura en libgdx?
- 25. ¿Cómo dibujar una ruta en un mapa usando el archivo kml?
- 26. Cómo dibujar fondo en openGL
- 27. Cómo dibujar un triángulo relleno en un lienzo Android?
- 28. ¿Cómo dibujar en Bitmap en Android?
- 29. Dibujando muchos rectángulos en GDI +
- 30. Invertir un conjunto de rectángulos en un plano 2D