Come Generare Mappe Interattive con Folium
'Generate Interactive Maps with Folium'
Utilizzare questa libreria Python per creare visualizzazioni di mappe
La visualizzazione dei dati è una delle aree più trascurate della scienza dei dati. L’apprendimento automatico e l’analisi statistica sono importanti, ma essere in grado di visualizzare i dati, soprattutto diversi tipi di dati, è un aspetto chiave della narrazione dei dati. Sebbene molti bootcamp e corsi introduttivi di scienza dei dati coprano come creare grafici di base con matplotlib e seaborn, molti di essi non coprono come visualizzare i dati geografici su mappe.
Folium è una libreria Python che utilizza Leaflet.js e dati Open Street Map per creare visualizzazioni di mappe di alta qualità. In questo articolo, dimostrerò come è possibile utilizzare Folium per generare visualizzazioni di mappe interattive.
Installazione
Puoi facilmente installare Folium utilizzando pip, come mostrato di seguito.
pip install folium
Importa le librerie
Come al solito, importerò alcune librerie Folium e alcune altre librerie che potrebbero essere necessarie prima di iniziare. Ricorda che puoi trovare tutto il codice per questo tutorial su GitHub.
- Come preparare i tuoi dati per le visualizzazioni
- Il nuovo modello su vasta scala rivoluzionario di Meta AI – DINOv2 per l’estrazione delle caratteristiche dell’immagine
- Deep Learning nei Sistemi di Raccomandazione Una Guida Introduttiva
import numpy as npimport pandas as pdimport folium
Tracciare una mappa del mondo predefinita
Folium dispone di una funzione Map che possiamo chiamare senza argomenti per generare una mappa del mondo predefinita.
folium.Map()
Nota come la mappa predefinita sia una proiezione e contenga controlli di zoom nell’angolo in alto a sinistra, in modo da poter interagire con la mappa e concentrarsi su una regione specifica se necessario.
Tracciare posizioni per coordinate
Possiamo creare una mappa centrata attorno a una posizione specifica aggiungendo un elenco di coordinate al parametro location nella funzione Map. Utilizzando il codice qui sotto, possiamo generare una mappa centrata su Tampa, in Florida.
folium.Map(location=[27.950575, -82.457176])
Cambiare le piastrelle della mappa
Possiamo anche cambiare le piastrelle della mappa per creare mappe che sembrano diverse con l’argomento “tiles”. Possiamo utilizzare le piastrelle Stamen Toner descritte in dettaglio qui.
folium.Map(location=[27.950575, -82.457176], tiles="Stamen Toner")
Nota come la stessa mappa di Tampa sia ora in bianco e nero. Possiamo anche creare mappe del terreno come mostrato di seguito.
folium.Map(location=[27.950575, -82.457176], tiles="Stamen Terrain")
Possiamo anche creare una bellissima mappa ad acquerello con le piastrelle di Stamen come mostrato nel codice qui di seguito.
folium.Map(location=[27.950575, -82.457176], tiles="Stamen Watercolor")
Aggiunta di marcatori sulla mappa
Se vogliamo aggiungere marcatori ad una mappa, possiamo utilizzare la classe Marker di Folium per creare oggetti marker e aggiungerli alla mappa come mostrato di seguito. Come ci aspettiamo, possiamo specificare la posizione di un marcatore utilizzando le coordinate.
m = folium.Map(location=[27.950575, -82.457176], tiles="Stamen Terrain")folium.Marker( location=[27.9658533, -82.8001026], popup="Clearwater", icon=folium.Icon(icon="cloud")).add_to(m)folium.Marker( location=[27.773082733154297, -82.64020538330078], popup="St. Petersburg", icon=folium.Icon(color='green')).add_to(m)m
Notate come ho creato dei marcatori sulla mappa sopra su Clearwater e Saint Petersburg.
Creazione di una mappa coropletica
Mentre la creazione di mappe è una funzionalità utile, essere in grado di rappresentare e visualizzare dati e tendenze sulle mappe è ancora meglio. Folium ci permette anche di creare mappe coropletiche. In questa sezione, illustrerò come creare una mappa coropletica con i dati sulla disoccupazione degli Stati Uniti.
Lettura dei dati
Il dataset che utilizzeremo è disponibile nella directory degli esempi nel repository GitHub di Folium. Leggeremo sia un file CSV con le statistiche sulla disoccupazione per ogni stato nel mese di ottobre 2012, che un file GeoJSON per generare la mappa.
url = ( "https://raw.githubusercontent.com/python-visualization/folium/main/examples/data")state_geo = f"{url}/us-states.json"state_unemployment = f"{url}/US_Unemployment_Oct2012.csv"state_data = pd.read_csv(state_unemployment)state_data.head(10)
L’immagine sopra mostra le prime dieci righe dei dati sulla disoccupazione per stato visualizzati utilizzando la funzione head di pandas.
Generazione della mappa
Ora che abbiamo i dati sulla disoccupazione, possiamo generare una mappa coropletica. Forniremo i seguenti argomenti al costruttore Choropleth:
- geo_data: un percorso per un file con dati GeoJSON per la generazione della mappa.
- name : il nome della mappa
- data : i dati effettivi che verranno utilizzati per generare i colori nella mappa coropletica.
- columns : le colonne dei dati che verranno utilizzate.
- key_on : la variabile nel file GeoJSON a cui associare i dati (deve iniziare con feature, ovvero feature.id)
- fill_color : lo schema di colori da utilizzare per la mappa coropletica
- fill_opacity : l’opacità della riempitura di colore.
- line_opacity : l’opacità delle linee nella mappa.
- legend_name : il nome della legenda nella mappa.
m = folium.Map(location=[46, -102], zoom_start=3)folium.Choropleth( geo_data=state_geo, name="mappa cloropetica", data=state_data, columns=["Stato", "Disoccupazione"], key_on="feature.id", fill_color="Reds", fill_opacity=0.7, line_opacity=0.2, legend_name="Tasso di disoccupazione (%)",).add_to(m)folium.LayerControl().add_to(m)m
Come si può vedere, siamo stati in grado di generare una mappa cloropetica che visualizza il tasso di disoccupazione in ogni stato degli Stati Uniti.
Salvare la Mappa come File HTML
Possiamo anche salvare le mappe come file HTML, il che è utile per incorporare le mappe Folium nelle applicazioni web.
m.save('mappa_cloropetica_disoccupazione.html')
Riassunto
Folium è una utile libreria Python per la visualizzazione di dati geografici. Ci permette di creare visualizzazioni di mappe interattive che possono anche essere salvate come file HTML e incorporate in applicazioni web. In questo articolo ho coperto solo alcune delle funzionalità di base di Folium e potete trovare una lista più dettagliata delle funzionalità sulla pagina di documentazione di Folium . Potete anche trovare tutto il codice utilizzato in questo articolo su GitHub .
Iscriviti alla mia Mailing List
Iscriviti alla mia mailing list per ricevere aggiornamenti sui miei contenuti di data science. Riceverai anche la mia Guida Passo-Passo alla Risoluzione dei Problemi di Machine Learning gratuita quando ti iscrivi ! Puoi anche seguirmi su Twitter per gli aggiornamenti sui contenuti.
E mentre ci sei, considera anche di unirti alla comunità Nisoo per leggere articoli di migliaia di altri scrittori.
Fonti
- Rob Story, Folium 0.14.0 documention , (2013), GitHub.