import geovizir as gvz
import pandas as pd
import matplotlib.pyplot as plt
Carte mondiale
Exemple
Importer les librairies nécessaires
Pour créer votre carte, vous aurez besoin des librairies suivantes :
geovizir
pour récupérer les données statistiques et géographiquespandas
pour la mise en classe des donnéesmatplotlib.pyplot
pour créer la carte
Récupérer les données
Une fois que vous avez choisi l’indicateur qui vous intéresse, vous pouvez le récupérer avec la fonction get_data()
de geovizir
. Pour récupérer les données, vous devez spécifier le code de l’indicateur et l’année souhaitée.
= gvz.get_data('SP.ADO.TFRT', 2023) tfra
En plus des données statistiques, vous aurez également besoin des données géographiques pour créer la carte. Pour cela, vous pouvez utiliser la fonction ne_countries()
de geovizir
.
= gvz.ne_countries()
world = world.to_crs('ESRI:54030') world
Fusionner les données
Une fois que vous avez récupéré les données statistiques et géographiques, vous devez les fusionner pour créer la carte. Pour cela, vous réalisez une jointure entre les deux tableaux en utilisant la colonne iso3c
du tableau statistique et la colonne ADM0_A3
du tableau geographique comme clé de jointure.
= world.merge(tfra, how='left', left_on='ADM0_A3', right_on='iso3c') plot_data
Mise en classe
Avant de créér la carte, vous devez mettre en classe les données statistiques. Pour cela, vous utiliser une des fonctions cut()
ou qcut()
de pandas
pour diviser les données en classes. Choisissez le nombre de classes que vous souhaitez créer et la méthode de mise en classe la plus indiquée en fonction de la distribution de vos données.
La fonction relabel_bins()
de geovizir
vous permet de renommer les classes créées pour qu’elles soient plus lisibles sur la carte.
'value_cat'] = pd.qcut(plot_data['value'], 5)
plot_data['value_cat'] = gvz.relabel_bins(plot_data['value_cat']) plot_data[
Création de la carte
Une fois que vous avez mis en classe les données, vous pouvez créer la carte avec la fonction plot()
de matplotlib.pyplot
. Vous pouvez personnaliser la carte en ajoutant des titres, des légendes et d’autres éléments graphiques pour la rendre plus informative et attrayante.
Choisissez une palette de couleurs qui correspond à votre indicateur et qui est facilement lisible. Une liste des palettes est disponible dans la documentation de matplotlib
.
Les palette de couleurs viridis
, plasma
, inferno
, magma
et cividis
sont recommandées pour les cartes, car elles sont perceptuellement uniformes et conviennent à la plupart des types de données. Vous pouvez inverser la palette de couleurs en ajoutant _r
à la fin du nom de la palette (par exemple, viridis_r
).
= plt.subplots(1, 1, figsize=(10, 6))
fig, ax '#2e3440') # Couleur de fond de la carte
ax.set_facecolor('#2e3440') # Couleur de fond de l'image
fig.patch.set_facecolor(
map = plot_data.plot(
="value_cat", legend=True,
column# Choix de la palette de couleurs
='viridis_r',
cmap=ax,
ax=(10, 6),
figsize={
missing_kwds# Couleur utilisée pour les pays sans données
'color': 'lightgray',
# Légende pour les pays sans données
'label': 'Pas de données'
},={
legend_kwds# Emplacement de la légende
# Utilisez 'upper' ou 'lower' pour placer la légende en haut ou en bas
# et 'left' ou 'right' pour la placer à gauche ou à droite
'loc': 'lower left',
# Pour un placement plus précis de la légende
# vous pouvez utiliser bbox_to_anchor avec un paramètre x et y
#'bbox_to_anchor': (0.3, 0.4)
})
# Retirer les axes de coordonnées
map.set_axis_off()
# Ajouter un titre
map.set_title("Taux de natalité (‰) chez les adolescentes (2023)", color='#eddaeb')
# Ajouter la source des données en bas à droite de la carte
plt.text(0.99, 0.01,
# Texte à afficher
'Source: Banque Mondiale (2023)',
='right', va='bottom',
ha=map.transAxes,
transform=8,
fontsize# Couleur du texte
='#eddaeb'
color
)map