Una de las tareas más importantes para alguien que trabaja en conjuntos de datos con países, ciudades, etc. es comprender las relaciones entre la ubicación física de sus datos y su contexto geográfico. Y una de esas formas de visualizar los datos es usando Folium .
Folium es una poderosa biblioteca de visualización de datos en Python que se creó principalmente para ayudar a las personas a visualizar datos geoespaciales. Con Folium, se puede crear un mapa de cualquier lugar del mundo. Folium es en realidad un contenedor de python para leaflet.js, que es una biblioteca de javascript para trazar mapas interactivos.
Ahora veremos una forma sencilla de trazar y visualizar datos geoespaciales. Usaremos un conjunto de datos que consta de tasas de desempleo en los EE. UU.
Instalación
Si folium no está instalado, simplemente puede instalarlo usando cualquiera de los siguientes comandos:
$ pip install folium OR $ conda install -c conda-forge folium
Usando folium.Map() , crearemos un mapa base y lo almacenaremos en un objeto. Esta función toma las coordenadas de ubicación y los valores de zoom como argumentos.
Sintaxis: folium.Map( ubicación,tiles= “OpenStreetMap” zoom_start=4 )
Parámetros:
- ubicación : lista de coordenadas de ubicación
- mosaicos : el valor predeterminado es OpenStreetMap. Otras opciones: tamen Terrain, Stamen Toner, Mapbox Bright, etc.
- zoom_start : int
Código:
Python3
# import the folium, pandas libraries import folium import pandas as pd # initialize the map and store it in a m object m = folium.Map(location = [40, -95], zoom_start = 4) # show the map m.save('my_map.html')
Producción:
Importar conjunto de datos usando pandas:
Ahora, importaremos los conjuntos de datos utilizando la biblioteca Pandas .
Python3
# getting the data url = ( "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data" ) state_geo = f"{url}/us-states.json" state_unemployment = f"{url}/US_Unemployment_Oct2012.csv" state_data = pd.read_csv(state_unemployment)
Creación de mapa con conjunto de datos:
Una vez que tengamos todos los datos que tenemos, visualizaremos estos datos usando mapas de coropletas. Los mapas de cloropletas representan áreas divididas en varios colores según la variable estadística que se les presenta. Aquí, usamos la tasa de desempleo en los EE. UU. como un medio para dividir las regiones en diferentes colores.
Usando folium.Choropleth() , podemos trazar el mapa final. Los detalles de cada atributo se dan en el propio código. El parámetro ‘ key on’ se refiere a la etiqueta en el objeto JSON (state_geo) que tiene el detalle del estado como el ID de función adjunto a la información de la frontera de cada país. Nuestros estados en el marco de datos deben coincidir con el ID de característica en el objeto json.
Sintaxis: folium.Choropleth(geo_data,name,data,columns,fill_color, fill_opacity, line_opacity, key_on,legend_name)
Parámetros:
- geo_data: un conjunto de regiones geográficas y sus coordenadas de límite
- name: String (nombre de nuestro mapa)
- datos: un valor numérico para cada región, utilizado para el color
- columnas: lista (columnas en las que necesitamos trabajar)
- fill_color: Color del mapa, por ejemplo: YlGn
- fill_opacity: opacidad de los colores rellenos
- line_opacity: opacidad de las líneas del borde
- legend_name: String
Finalmente, podemos guardar nuestro mapa como un archivo HTML.
Python3
folium.Choropleth( # geographical locations geo_data = state_geo, name = "choropleth", # the data set we are using data = state_data, columns = ["State", "Unemployment"], # YlGn refers to yellow and green fill_color = "YlGn", fill_opacity = 0.7, line_opacity = .1, key_on = "feature.id", legend_name = "Unemployment Rate (%)", ).add_to(m) m.save('final_map.html')
Producción: