Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Grafici Avanzati con Matplotlib e Seaborn | Tecniche di Analisi Spaziale
Analisi Geospaziale con Python

Grafici Avanzati con Matplotlib e Seaborn

Scorri per mostrare il menu

Quando si lavora con dati spaziali, una visualizzazione efficace è fondamentale per individuare pattern e comunicare informazioni. Le librerie matplotlib e seaborn di Python offrono strumenti potenti per migliorare i grafici spaziali, consentendo di personalizzare i colori, aggiungere legende informative, impostare titoli descrittivi e sovrapporre più livelli di dati. Padroneggiando queste tecniche, è possibile creare mappe e visualizzazioni chiare ed efficaci che evidenziano importanti relazioni spaziali.

La personalizzazione dei grafici spaziali inizia spesso dal controllo dell'aspetto dei dati. È possibile specificare colori per rappresentare diverse categorie o valori, regolare la trasparenza per mostrare elementi sovrapposti e utilizzare le legende per spiegare le codifiche visive. L'aggiunta di titoli e etichette agli assi aiuta gli utenti a interpretare rapidamente i grafici. La sovrapposizione di più livelli—come strade sopra i confini amministrativi—può fornire un contesto più approfondito per l'analisi spaziale.

12345678910111213141516171819202122232425262728293031323334
import geopandas as gpd import matplotlib.pyplot as plt url = "https://naciscdn.org/naturalearth/110m/cultural/ne_110m_admin_0_countries.zip" world = gpd.read_file(url) # Create a plot with customizations fig, ax = plt.subplots(figsize=(12, 8)) # Plot countries, coloring by continent world.plot(column='CONTINENT', cmap='Set2', edgecolor='black', linewidth=0.5, legend=True, ax=ax, alpha=0.8) # Overlay country boundaries with a thicker line for emphasis world.boundary.plot(ax=ax, color='gray', linewidth=1.5) # Add a title and axis labels ax.set_title('World Countries by Continent', fontsize=18) ax.set_xlabel('Longitude') ax.set_ylabel('Latitude') # Customize legend position so it doesn't overlap the map leg = ax.get_legend() if leg: leg.set_bbox_to_anchor((1.15, 0.5)) plt.tight_layout() plt.show()
Note
Nota

Il nome della colonna nel dataset ufficiale è CONTINENT

Oltre alle visualizzazioni basate su mappe, è possibile esplorare la distribuzione degli attributi spaziali — come area, popolazione o densità — utilizzando grafici statistici. Seaborn è particolarmente utile a questo scopo, poiché consente di creare istogrammi, grafici a dispersione e altro ancora, con stili predefiniti accattivanti e facile personalizzazione. Combinando seaborn con dati spaziali, è possibile identificare rapidamente tendenze e valori anomali nei dataset, supportando un'analisi spaziale più approfondita.

1234567891011121314151617181920212223242526272829303132
import geopandas as gpd import seaborn as sns import matplotlib.pyplot as plt # Load sample data directly from the official URL url = "https://naciscdn.org/naturalearth/110m/cultural/ne_110m_admin_0_countries.zip" world = gpd.read_file(url) # The official dataset doesn't have a pre-made 'area' column, so we calculate it. # Note: This calculates area in decimal degrees based on the WGS84 projection. world['area'] = world.geometry.area # Plot a histogram of country areas plt.figure(figsize=(10, 6)) # 'area' is our new custom column, kde=True adds the density curve sns.histplot(world['area'], bins=30, color='skyblue', kde=True) plt.title('Distribution of Country Areas') plt.xlabel('Area (sq. degrees)') plt.ylabel('Number of Countries') plt.tight_layout() plt.show() # Plot a scatter plot of population vs. area plt.figure(figsize=(10, 6)) # Adjusted column names to match the official dataset: 'POP_EST' and 'CONTINENT' sns.scatterplot(x='area', y='POP_EST', data=world, hue='CONTINENT', palette='Set2') plt.title('Country Population vs. Area by Continent') plt.xlabel('Area (sq. degrees)') plt.ylabel('Estimated Population') plt.legend(title='Continent', bbox_to_anchor=(1.05, 1), loc='upper left') plt.tight_layout() plt.show()
question mark

Quale delle seguenti affermazioni descrive meglio l'effetto dell'utilizzo di diverse mappe di colori e legende nelle visualizzazioni spaziali?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 4

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 2. Capitolo 4
some-alt