es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Añadir un borde alrededor de partes de una región, matplotlib/geopandas

Tendré un mapa mostrando los municipios de Estocolmo. Mostrado abajo.
aquí

fig, ax = plt.subplots(1, figsize=(4, 4))

matplotlib.rcParams["figure.dpi"] = 250
ax.axis('off')

ax1 = geo_df1.plot(edgecolor='black', column=geo_df1.rel_grp, cmap=my_cmp, linewidth=0.3, ax=ax, categorical=True)#, 

plt.show(ax1)

Quiero agregar un borde amplificado al este. Algo como esto. ¿Cómo puedo hacer esto en matplotlib?
aquí

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para agregar un borde amplificado al este del mapa, puedes hacer uso de la clase Polygon del módulo matplotlib.patches. Aquí tienes un ejemplo de bloque de código, asumiendo que ya has importado los módulos necesarios y tienes acceso a la geometría de los municipios:

    from matplotlib.patches import Polygon
    
    # Define las coordenadas del borde este
    east_border = [(18.2, 59.2), (19, 59.2), (19.5, 59.8), (19, 60.1), (18.2, 60.1)]
    
    # Crea un nuevo polígono a partir de las coordenadas
    border_poly = Polygon(east_border, facecolor='none', edgecolor='black', linewidth=2)
    
    # Agrega el nuevo polígono a la trama existente
    ax.add_patch(border_poly)
    
    # Muestra la trama final
    plt.show()
    

    Este bloque de código define las coordenadas del nuevo borde y crea un nuevo objeto Polygon a partir de ellas. El facecolor se establece en 'none' para que el polígono no se rellene y el edgecolor y el linewidth se establecen para dar la apariencia deseada. Por último, el nuevo polígono se agrega a la trama existente utilizando el método add_patch del objeto Axes.

Comments are closed.