scripts/irve_bornes_recharge/repartition.py

39 lines
1.3 KiB
Python

import matplotlib.pyplot as plt
import datetime
# url = "https://www.data.gouv.fr/fr/datasets/r/7eee8f09-5d1b-4f48-a304-5e99e8da1e26"
import pandas_geojson as pdg
import numpy as np
from pandas import DataFrame
from pandas_geojson import GeoJSON
import re
geojson: GeoJSON = pdg.read_geojson('small.geojson')
gdf: DataFrame = geojson.to_dataframe()
operators: int = gdf['properties.nom_amenageur'].value_counts()
# Calculer les hauteurs des barres et les étiquettes
height = np.zeros(len(gdf))
labels = []
for i, operator in enumerate(operators):
height[i] = gdf[gdf['nom_operateur'] == operator]['properties.nom_amenageur'].size
labels.append(operator)
# Créer le graphique
fig, ax = plt.subplots()
ax.bar(range(len(height)), height)
ax.set_xlabel('Index de l\'opérateur')
ax.set_ylabel('Nombre de lignes')
ax.set_xticks(range(len(height)))
ax.set_xticklabels(labels)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.tick_params(axis='both', length=0)
# Ajouter la date au graphique
current_datetime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
plt.suptitle(f"Distribution du nombre de lignes par opérateur - Date : {current_datetime}")
# Afficher le graphique
plt.show()
# Sauvegarder le graphique en tant que fichier JPG
plt.savefig("distribution_par_operateur.jpg")