Skip to content
Snippets Groups Projects
Commit a4e9f18a authored by awenjb's avatar awenjb
Browse files

Add visualisation

- add .ipynb to display capacity (link with solutiion and data file to do)
parent b758be1b
No related branches found
No related tags found
No related merge requests found
%% Cell type:code id: tags:
``` python
%pip install folium pandas OSMnx networkx scikit-learn matplotlib numpy
```
%% Output
Requirement already satisfied: folium in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (0.19.4)
Requirement already satisfied: pandas in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (2.2.3)
Requirement already satisfied: OSMnx in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (2.0.1)
Requirement already satisfied: networkx in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (3.4.2)
Requirement already satisfied: scikit-learn in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (1.6.1)
Requirement already satisfied: matplotlib in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (3.10.1)
Requirement already satisfied: numpy in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (2.2.3)
Requirement already satisfied: branca>=0.6.0 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from folium) (0.8.1)
Requirement already satisfied: jinja2>=2.9 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from folium) (3.1.5)
Requirement already satisfied: requests in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from folium) (2.32.3)
Requirement already satisfied: xyzservices in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from folium) (2025.1.0)
Requirement already satisfied: python-dateutil>=2.8.2 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from pandas) (2.9.0.post0)
Requirement already satisfied: pytz>=2020.1 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from pandas) (2025.1)
Requirement already satisfied: tzdata>=2022.7 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from pandas) (2025.1)
Requirement already satisfied: geopandas>=1.0 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from OSMnx) (1.0.1)
Requirement already satisfied: shapely>=2.0 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from OSMnx) (2.0.7)
Requirement already satisfied: scipy>=1.6.0 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from scikit-learn) (1.15.2)
Requirement already satisfied: joblib>=1.2.0 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from scikit-learn) (1.4.2)
Requirement already satisfied: threadpoolctl>=3.1.0 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from scikit-learn) (3.5.0)
Requirement already satisfied: contourpy>=1.0.1 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from matplotlib) (1.3.1)
Requirement already satisfied: cycler>=0.10 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from matplotlib) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from matplotlib) (4.56.0)
Requirement already satisfied: kiwisolver>=1.3.1 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from matplotlib) (1.4.8)
Requirement already satisfied: packaging>=20.0 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from matplotlib) (24.2)
Requirement already satisfied: pillow>=8 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from matplotlib) (11.1.0)
Requirement already satisfied: pyparsing>=2.3.1 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from matplotlib) (3.2.1)
Requirement already satisfied: pyogrio>=0.7.2 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from geopandas>=1.0->OSMnx) (0.10.0)
Requirement already satisfied: pyproj>=3.3.0 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from geopandas>=1.0->OSMnx) (3.7.1)
Requirement already satisfied: MarkupSafe>=2.0 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from jinja2>=2.9->folium) (3.0.2)
Requirement already satisfied: six>=1.5 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from python-dateutil>=2.8.2->pandas) (1.17.0)
Requirement already satisfied: charset_normalizer<4,>=2 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from requests->folium) (3.4.1)
Requirement already satisfied: idna<4,>=2.5 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from requests->folium) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from requests->folium) (2.3.0)
Requirement already satisfied: certifi>=2017.4.17 in /home/a24jacqb/.julia/conda/3/x86_64/lib/python3.12/site-packages (from requests->folium) (2025.1.31)
Note: you may need to restart the kernel to use updated packages.
%% Cell type:markdown id: tags:
# Capacity
%% Cell type:code id: tags:
``` python
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cm as cm
import matplotlib.colors as mcolors
def plot_number_columns(*sequences):
num_sequences = len(sequences)
fig, axes = plt.subplots(num_sequences, 1, figsize=(10, num_sequences * 4), sharex=True)
if num_sequences == 1:
axes = [axes]
for i, (ax, seq) in enumerate(zip(axes, sequences)):
max_value = max(seq) # TODO prendre la capacity value de l'instance
normalized_seq = [value / max_value * 100 for value in seq] # Normalisation en %
x_positions = np.arange(len(seq))
# Couleur
norm = mcolors.Normalize(vmin=min(seq), vmax=max(seq))
colors = [cm.get_cmap('YlOrRd')(norm(value)) for value in seq]
ax.bar(x_positions, normalized_seq, color=colors, edgecolor='black', width=1.0) # Largeur des colonnes = 1.0 pour les coller
ax.set_ylabel('Capacité utilisée (%)')
ax.set_title(f'Route {i+1}')
ax.set_ylim(0, 110)
ax.set_xticks(x_positions) # TODO Ecrire les position (locationID) pour chaque graphique
axes[-1].set_xlabel('Position')
plt.tight_layout()
plt.show()
# test
plot_number_columns([3, 1, 4, 1, 5], [2, 7, 1, 8, 2, 8], [0, 0.5,1,2,3,5,8,5,3,2,1, 0.5, 0])
```
%% Output
/tmp/ipykernel_101649/181514259.py:22: MatplotlibDeprecationWarning: The get_cmap function was deprecated in Matplotlib 3.7 and will be removed in 3.11. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap()`` or ``pyplot.get_cmap()`` instead.
colors = [cm.get_cmap('YlOrRd')(norm(value)) for value in seq]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment