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.

Cómo forzar a Geopandas a trazar un mapa con “valores faltantes” (leyenda) en una columna sin “valores faltantes”?

Quiero crear algunos mapas (cada columna es una fecha), y para algunas columnas (es decir, fechas) hay algunos valores faltantes, y para otras no. Cuando utilizo la función “missing_kwds” dentro de geopandas para resaltar los valores faltantes (en algunas regiones), si hay valores NaN en las columnas (fechas), el código funciona bien, pero cuando no hay NaN en la columna, obtengo un error que dice “referencia a la variable local ‘merged_kwds’ antes de la asignación”. Ten en cuenta que quiero mantener en la leyenda el indicador de “valores faltantes”, independientemente de si esa columna (es decir, fecha) no tiene NaN (estoy recopilando las figuras y creando un GIF).

for i in geo_cases.iloc[:,:-2]:
   fig, ax = plt.subplots(figsize = (12, 12))
   # Establecer el mapa global 
   world.plot(color = '#e5e3e6', ax = ax, edgecolor = 'w', linewidth = 0.8)
   # Establecer nuestro mapa 
   geo_cases.plot(column = geo_cases[i], ax =ax, cmap = 'RdPu', legend = True, alpha = .4,
          linewidth = 0.3, edgecolor = 'w', categorical = True, missing_kwds={
        "color": "lightgrey",
        "edgecolor": "red",
        "hatch": "///",
        "label": "Valores faltantes"})  

Error

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “variable local ‘merged_kwds’ referenciada antes de ser asignada” sugiere que hay un problema con el diccionario missing_kwds. Esto puede ser debido a que el diccionario no se está actualizando correctamente cuando no hay valores NaN en la columna.

    Una posible solución es verificar si hay valores NaN en la columna antes de trazar y actualizar el diccionario missing_kwds en consecuencia. Por ejemplo:

    if geo_cases[i].isnull().values.any():
        missing_kwds = {
            "color": "lightgrey",
            "edgecolor": "red",
            "hatch": "///",
            "label": "Valores faltantes"
        }
    else:
        missing_kwds = {}
    
    geo_cases.plot(column=geo_cases[i], ax=ax, cmap='RdPu', legend=True, alpha=.4,
                  linewidth=0.3, edgecolor='w', categorical=True, missing_kwds=missing_kwds)
    

    Esto actualizará el diccionario missing_kwds para incluir la etiqueta “Valores faltantes” solo cuando haya valores NaN en la columna, y lo dejará vacío cuando no los haya.

Comments are closed.