Tutorial di Matplotlib Portiamo le tue mappe dei paesi ad un altro livello

Tutorial di Matplotlib portiamo le mappe dei paesi ad un livello superiore

Tutorial su Matplotlib

Come disegnare bellissime mappe con Python e Matplotlib

Mappa creata dall'autore

Sì, ho creato la mappa sopra usando Matplotlib, e ti mostrerò come farlo in questo tutorial.

L’idea è creare una funzione riutilizzabile e flessibile che mi permetta di disegnare istantaneamente una bellissima mappa di qualsiasi area.

Con una tale funzione, posso risparmiare un sacco di tempo quando voglio creare grafici o infografiche con un componente geografico.

Voglio anche mostrare il potere del codice riutilizzabile, poiché molti programmatori che lavorano con la visualizzazione dei dati si dimenticano di queste migliori pratiche.

Questo tutorial contiene ogni singola riga di codice necessaria per creare la mappa dell’Africa sopra.

Iniziamo.

Passo 1: Scarica dati geografici

L’unica cosa che devi fare prima di iniziare il tutorial è scaricare i dati geografici da qui:

World Boundaries GeoJSON – Risoluzione molto alta

Sono i confini ufficiali della Banca Mondiale e un dataset pubblico che puoi utilizzare come preferisci.

Passo 2: Importa le librerie

Come al solito, iniziamo importando le librerie necessarie, e non ne abbiamo bisogno di molte. Poiché abbiamo dati geografici, vogliamo utilizzare geopandas per semplificare il tracciamento.

import numpy as npimport pandas as pdimport seaborn as snsimport geopandas as gpdimport matplotlib.pyplot as pltimport matplotlib.patheffects as PathEffectsfrom matplotlib.patches import Polygon

Un’importazione che potresti non aver ancora visto è PathEffe. La utilizzerò per creare un bordo intorno alle etichette dei paesi successivamente.

Passo 3: Crea uno stile seaborn

Prima di tracciare, creo sempre uno stile seaborn per ottenere un aspetto coerente. Qui, definisco solo un background_color, font_family e text_color. Imposto lo sfondo di colore azzurro chiaro per rappresentare l’oceano.

font_family = "sans"background_color = "#D4F1F4"text_color = "#040303"sns.set_style({    "axes.facecolor": background_color…