
Le mappe sono usate da secoli per aiutare le persone a orientarsi e comprendere l’ambiente circostante. Nell’era dei big data, le mappe sono diventate uno strumento essenziale per la visualizzazione dei dati. Ci permettono di rappresentare le informazioni in modo intuitivo, interattivo e facile da capire. Le mappe possono aiutarti a individuare schemi e relazioni che potrebbero essere difficili da cogliere in altri tipi di grafici.
Plotly è una potente libreria di visualizzazione dati per Python che ti permette di creare un’ampia gamma di visualizzazioni interattive, comprese le mappe. Uno dei vantaggi di Plotly è la sua integrazione fluida con altre librerie Python, come Pandas e NumPy. Questo rende semplice importare e manipolare i dati e creare visualizzazioni personalizzate in base alle tue esigenze. Se vuoi imparare Plotly, dai un’occhiata al nostro corso Introduction to Data Visualization with Plotly in Python.
In questo tutorial imparerai, passo dopo passo, a creare e personalizzare mappe semplici e interattive usando Plotly in Python. Imparerai anche a creare mappe coropletiche (Choropleth), un tipo specifico di mappa che usa la codifica a colori per rappresentare dati relativi ad aree geografiche specifiche, come paesi, stati o città.
Visualizzazioni di mappe comuni in Plotly
Iniziamo dando un’occhiata ad alcuni dei diversi tipi di mappe Plotly che puoi creare.
Grafico ScatterGeo
La funzione Scattergeo() è usata per creare uno scatter plot su una mappa geografica. In pratica, ti aiuta a posizionare punti su una mappa, dove ciascun punto rappresenta una specifica località geografica, come una città o un punto di interesse.
Per esempio, se hai un dataset con le coordinate di latitudine e longitudine di diverse città nel mondo, puoi usare Scattergeo() per tracciare ogni città su una mappa globale.
Ogni punto sulla mappa rappresenterà la posizione di una specifica città e potrai personalizzare dimensione, colore e forma di ciascun punto per rappresentare diverse caratteristiche delle città, come popolazione o temperatura.
Questa funzione è comunemente usata in applicazioni di visualizzazione e analisi dei dati, come previsioni meteo, analisi della popolazione e mappatura per il business. Può aiutarti a visualizzare i dati in modo più significativo mostrando la distribuzione spaziale dei tuoi punti e mettendo in evidenza schemi o tendenze che potrebbero non essere visibili in una tabella o in un grafico.
Esempio di creazione di un grafico ScatterGeo in Plotly
import plotly.express as px
import pandas as pd
# Import data from USGS
data = pd.read_csv('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.csv')
# Drop rows with missing or invalid values in the 'mag' column
data = data.dropna(subset=['mag'])
data = data[data.mag >= 0]
# Create scatter map
fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
hover_name='place', #size='mag',
title='Earthquakes Around the World')
fig.show()
Output:

Questo esempio di codice usa Plotly per creare una mappa geografica interattiva delle località dei terremoti a livello mondiale. Importa i dati sui terremoti dal sito USGS in un DataFrame di pandas ed elimina le righe con valori di magnitudo mancanti o non validi.
Il codice quindi utilizza il metodo px.scatter_geo per creare una mappa a punti che mostra le località dei terremoti, con i terremoti più forti visualizzati in colori più scuri. Il parametro hover_name è impostato per mostrare il nome della località quando passi il cursore su un indicatore.
Infine, il codice imposta il titolo della mappa e la visualizza con fig.show(). Questo tipo di mappa può essere usato per esplorare i pattern dei terremoti e ottenere insight sull’attività sismica globale.
Personalizzare i grafici di base
1. Modificare la scala dei colori: il parametro color nella funzione scatter_geo mappa la magnitudo dei terremoti al colore dei marker. Puoi personalizzare la scala dei colori per rappresentare meglio i valori di magnitudo.
fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
hover_name='place', color_continuous_scale='reds',
title='Earthquakes Around the World')
fig.show()
Output:

2. Modificare la dimensione dei marker: puoi personalizzare la dimensione dei marker per rappresentare meglio la magnitudo dei terremoti.
fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
hover_name='place', size='mag', size_max=10,
title='Earthquakes Around the World')
fig.show()
Output:

3. Modificare il colore di sfondo: puoi cambiare il colore di sfondo della mappa per renderla più gradevole visivamente.
fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
hover_name='place', color_continuous_scale='reds',
title='Earthquakes Around the World')
fig.update_layout(geo=dict(bgcolor='black'))
fig.show()

Se vuoi approfondire le possibilità di visualizzazione e le personalizzazioni avanzate in Plotly, dai un’occhiata al nostro Python Plotly Express Tutorial: Unlock Beautiful Visualizations di Bekhruz Tuychiev.
Salvare la mappa come file HTML interattivo
Puoi salvare una figura Plotly come file HTML usando la funzione write_html() del modulo plotly.io. Ecco un esempio:
import plotly.io as pio
pio.write_html(fig, file='earthquakes.html', auto_open=True)

Mappe coropletiche
Una mappa coropletica è un tipo di mappa che usa colori o sfumature diversi per rappresentare i valori dei dati in regioni differenti, come paesi, stati o province. In una mappa coropletica, ogni regione è colorata in base al valore di una specifica variabile, come popolazione, reddito o temperatura.
Le mappe coropletiche possono essere utilizzate in molte applicazioni, come la mappatura elettorale, l’analisi demografica e la visualizzazione di dati geografici. Ti aiutano a cogliere pattern e tendenze nei dati che potrebbero non emergere in una tabella o in un grafico e offrono un modo efficace per comunicare informazioni al tuo pubblico.
Sebbene entrambe le funzioni scatter_geo e Choropleth in Plotly siano usate per creare visualizzazioni geografiche, differiscono per i tipi di dati a cui si adattano meglio e per il modo in cui rappresentano tali dati su una mappa. La funzione scatter_geo è ideale per tracciare singoli punti dati su una mappa, dove ogni punto rappresenta una località geografica specifica, come una città, un punto di interesse o un terremoto.
Al contrario, la funzione Choropleth è utilizzata per visualizzare dati aggregati o mediati su aree, come paesi, stati o province. Ogni regione è ombreggiata o colorata in base al valore di una specifica variabile, come densità di popolazione, reddito medio o tasso di disoccupazione.
Esempio di creazione di una mappa Choropleth in Plotly
import plotly.express as px
import pandas as pd
# Import data from GitHub
data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_with_codes.csv')
# Create basic choropleth map
fig = px.choropleth(data, locations='iso_alpha', color='gdpPercap', hover_name='country',
projection='natural earth', title='GDP per Capita by Country')
fig.show()
Output:

Nota che nel nostro dataframe è presente una dimensione temporale year, che va dal 1952 al 2007. Possiamo usare questa dimensione per animare la visualizzazione. Vedi l’esempio qui sotto.
Dataset di esempio:

import plotly.express as px
import pandas as pd
# Import data from GitHub
data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_with_codes.csv')
# Create basic choropleth map
fig = px.choropleth(data, locations='iso_alpha', color='gdpPercap', hover_name='country',
projection='natural earth', animation_frame='year',
title='GDP per Capita by Country')
fig.show()
Output:

Conclusione
Le mappe sono fondamentali per la visualizzazione dei dati nell’era dei big data. Plotly è una potente libreria di visualizzazione per Python che ti consente di creare diverse mappe interattive. Con Scattergeo puoi tracciare punti dati che corrispondono a posizioni geografiche specifiche, mentre Choropleth è ideale per visualizzare dati aggregati su dimensioni diverse come regione, città, paese, ecc.
Se vuoi esplorare opzioni di personalizzazione più avanzate in Plotly o scoprire di più sulle sue potenzialità, dai un’occhiata al Python Plotly Express Cheat Sheet, che offre un rapido riferimento alle funzioni e alle opzioni di Plotly più usate.


