up réseau de personnages et graph des intrigues

This commit is contained in:
Tykayn 2025-08-30 17:22:32 +02:00 committed by tykayn
parent 499ec2154a
commit b4b4398bb0
24 changed files with 6836 additions and 33 deletions

View file

@ -1,32 +1,71 @@
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches
from matplotlib.patches import FancyBboxPatch
# Lire le fichier CSV
df = pd.read_csv('intrigues.csv')
# Créer un diagramme de Gantt
fig, ax = plt.subplots(figsize=(10, 6))
fig, ax = plt.subplots(figsize=(12, 8))
# DéFinir les valeurs de Début et de Fin pour chaque tâche
# Définir les couleurs
colors = plt.cm.viridis(np.linspace(0, 1, len(df)))
# Définir les valeurs de Début et de Fin pour chaque tâche avec des barres aux bords arrondis
bar_height = 0.6
for i, row in df.iterrows():
ax.plot([row['Début'], row['Fin']], [i, i], 'b-')
ax.plot([row['Début'], row['Début']], [i-0.1, i+0.1], 'bo')
ax.plot([row['Fin'], row['Fin']], [i-0.1, i+0.1], 'ro')
start = row['Début']
end = row['Fin']
width = end - start
# Créer une barre avec des bords arrondis
fancy_box = FancyBboxPatch(
(start, i - bar_height/2), # (x, y)
width, # width
bar_height, # height
boxstyle=f"round,pad=0.02,rounding_size=0.2",
facecolor=colors[i],
alpha=0.8,
edgecolor='black',
linewidth=1
)
ax.add_patch(fancy_box)
# Ajouter le texte du nom de l'intrigue dans la barre si assez large
if width > 1.5:
ax.text(
start + width/2,
i,
row['Intrigue'],
ha='center',
va='center',
color='white',
fontweight='bold'
)
# DéFinir les étiquettes pour les tâches
# Définir les étiquettes pour les tâches
ax.set_yticks(range(len(df)))
ax.set_yticklabels(df['Intrigue'])
# DéFinir les étiquettes pour les valeurs
# Définir les étiquettes pour les valeurs
ax.set_xticks(range(int(df['Début'].min()), int(df['Fin'].max())+1))
ax.set_xticklabels(ax.get_xticks())
ax.plot([row['Début'], row['Fin']], [i, i], 'b-', linewidth=2)
# Ajouter un titre au diagramme
ax.set_title('Intrigues')
ax.set_title('Diagramme des Intrigues', fontsize=16)
# Afficher le diagramme
#plt.show()
#plt.figure(figsize=(16, 9))
# Code pour tracer votre graphique
#plt.savefig("graphique_gantt_intrigues.png", dpi=72)
# Ajouter une grille pour faciliter la lecture
ax.grid(True, linestyle='--', alpha=0.7)
# Ajuster les limites du graphique
ax.set_xlim(df['Début'].min() - 0.5, df['Fin'].max() + 0.5)
ax.set_ylim(-0.5, len(df) - 0.5)
# Améliorer l'apparence générale
plt.tight_layout()
# Sauvegarder en PNG et SVG
plt.savefig("graphique_gantt_intrigues.png", dpi=150, bbox_inches='tight')
plt.savefig("graphique_gantt_intrigues.svg", format='svg', bbox_inches='tight')