import matplotlib.pyplot as plt import matplotlib.dates as mdates from datetime import datetime # Exemple de données de tâches tasks = [ {"name": "Tâche 1", "start": "2023-10-01", "end": "2023-10-05"}, {"name": "Tâche 2", "start": "2023-10-03", "end": "2023-10-10"}, {"name": "Tâche 3", "start": "2023-10-07", "end": "2023-10-15"}, ] # Convertir les dates en objets datetime for task in tasks: task["start"] = datetime.strptime(task["start"], "%Y-%m-%d") task["end"] = datetime.strptime(task["end"], "%Y-%m-%d") # Créer le diagramme de Gantt fig, ax = plt.subplots(figsize=(10, len(tasks))) for i, task in enumerate(tasks): ax.barh(task["name"], (task["end"] - task["start"]).days, left=task["start"], color='skyblue') # Formater l'axe des dates ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d')) ax.xaxis.set_major_locator(mdates.DayLocator(interval=1)) plt.xticks(rotation=45) # Ajouter des labels et un titre ax.set_xlabel('Date') ax.set_ylabel('Tâches') ax.set_title('Diagramme de Gantt') # Afficher le diagramme plt.tight_layout() plt.show()
Matplotlib is building the font cache; this may take a moment.
import plotly.express as px import pandas as pd # Exemple de données data = [ {"Task": "Tâche 1", "Start": "2023-10-01", "Finish": "2023-10-05"}, {"Task": "Tâche 2", "Start": "2023-10-03", "Finish": "2023-10-10"}, {"Task": "Tâche 3", "Start": "2023-10-07", "Finish": "2023-10-15"}, ] df = pd.DataFrame(data) df["Start"] = pd.to_datetime(df["Start"]) df["Finish"] = pd.to_datetime(df["Finish"]) # Créer le diagramme de Gantt fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", title="Diagramme de Gantt avec Plotly") fig.update_yaxes(categoryorder="total ascending") fig.show()
import plotly.express as px import pandas as pd # Exemple de données data = [ {"Task": "Tâche 1", "Start": "2023-10-01", "Finish": "2023-10-05"}, {"Task": "Tâche 2", "Start": "2023-10-03", "Finish": "2023-10-10"}, {"Task": "Tâche 3", "Start": "2023-10-07", "Finish": "2023-10-15"}, ] df = pd.DataFrame(data) df["Start"] = pd.to_datetime(df["Start"]) df["Finish"] = pd.to_datetime(df["Finish"]) # Créer le diagramme de Gantt fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", title="Diagramme de Gantt avec Plotly") fig.update_yaxes(categoryorder="total ascending") fig.show()
import plotly.express as px import pandas as pd # Exemple de données avec une colonne de couleur et progression data = [ {"Task": "Tâche 1", "Start": "2023-10-01", "Finish": "2023-10-05", "Color": "blue", "Progress": 0.2}, {"Task": "Tâche 2", "Start": "2023-10-03", "Finish": "2023-10-10", "Color": "green", "Progress": 0}, {"Task": "Tâche 3", "Start": "2023-10-07", "Finish": "2023-10-15", "Color": "orange", "Progress": 0}, ] df = pd.DataFrame(data) df["Start"] = pd.to_datetime(df["Start"]) df["Finish"] = pd.to_datetime(df["Finish"]) # Calculer la date de progression pour Tâche 1 df["Progress_Start"] = df["Start"] + (df["Finish"] - df["Start"]) * df["Progress"] # Créer le diagramme de Gantt avec couleur par tâche et progression fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", color="Color", title="Diagramme de Gantt avec couleurs et progression par tâche") fig.add_scatter(x=df["Progress_Start"], y=df["Task"], mode='markers', marker=dict(size=10, color='red'), name='Progression') fig.update_yaxes(categoryorder="total ascending") fig.show()
import plotly.express as px import pandas as pd # Exemple de données avec une colonne de couleur et progression data = [ {"Task": "Tâche 1", "Start": "2023-10-01", "Finish": "2023-10-05", "Color": "blue", "Progress": 0.2}, {"Task": "Tâche 2", "Start": "2023-10-03", "Finish": "2023-10-10", "Color": "green", "Progress": 0}, {"Task": "Tâche 3", "Start": "2023-10-07", "Finish": "2023-10-15", "Color": "orange", "Progress": 0}, ] df = pd.DataFrame(data) df["Start"] = pd.to_datetime(df["Start"]) df["Finish"] = pd.to_datetime(df["Finish"]) # Trier par date de début df = df.sort_values(by="Start") # Calculer la date de progression pour Tâche 1 df["Progress_Start"] = df["Start"] + (df["Finish"] - df["Start"]) * df["Progress"] # Créer le diagramme de Gantt avec couleur par tâche et progression fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", color="Color", title="Diagramme de Gantt avec couleurs et progression par tâche") fig.add_scatter(x=df["Progress_Start"], y=df["Task"], mode='markers', marker=dict(size=10, color='red'), name='Progression') fig.update_yaxes(categoryorder="total ascending") fig.show()
import plotly.express as px import pandas as pd # Exemple de données avec une colonne de couleur et progression data = [ {"Task": "Tâche 1", "Start": "2023-10-01", "Finish": "2023-10-05", "Color": "blue", "Progress": 0.2}, {"Task": "Tâche 2", "Start": "2023-10-03", "Finish": "2023-10-10", "Color": "green", "Progress": 0}, {"Task": "Tâche 3", "Start": "2023-10-07", "Finish": "2023-10-15", "Color": "orange", "Progress": 0}, ] df = pd.DataFrame(data) df["Start"] = pd.to_datetime(df["Start"]) df["Finish"] = pd.to_datetime(df["Finish"]) # Trier par date de début df = df.sort_values(by="Start") # Calculer la date de progression pour Tâche 1 df["Progress_Start"] = df["Start"] + (df["Finish"] - df["Start"]) * df["Progress"] # Créer le diagramme de Gantt avec couleur par tâche et progression fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", color="Color", title="Diagramme de Gantt avec couleurs et progression par tâche") fig.add_scatter(x=df["Progress_Start"], y=df["Task"], mode='markers', marker=dict(size=10, color='red'), name='Progression') # Ajouter les valeurs de progression en pourcentage for i, row in df.iterrows(): fig.add_annotation( x=row["Progress_Start"], y=row["Task"], text=f"{int(row['Progress'] * 100)}%", showarrow=True, arrowhead=2, ax=20, ay=-10 ) fig.update_yaxes(categoryorder="total ascending") fig.show()
import plotly.express as px import pandas as pd # Exemple de données avec une colonne de couleur et progression data = [ {"Task": "Tâche 1", "Start": "2023-10-01", "Finish": "2023-10-05", "Color": "blue", "Progress": 0.2}, {"Task": "Tâche 2", "Start": "2023-10-03", "Finish": "2023-10-10", "Color": "green", "Progress": 0}, {"Task": "Tâche 3", "Start": "2023-10-07", "Finish": "2023-10-15", "Color": "orange", "Progress": 0}, ] df = pd.DataFrame(data) df["Start"] = pd.to_datetime(df["Start"]) df["Finish"] = pd.to_datetime(df["Finish"]) # Trier par date de début df = df.sort_values(by="Start") # Calculer la date de progression pour Tâche 1 df["Progress_Start"] = df["Start"] + (df["Finish"] - df["Start"]) * df["Progress"] # Créer le diagramme de Gantt avec couleur par tâche et progression fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", color="Color", title="Diagramme de Gantt avec couleurs et progression par tâche") fig.add_scatter(x=df["Progress_Start"], y=df["Task"], mode='markers', marker=dict(size=10, color='red'), name='Progression') # Ajouter une ligne pointillée sur le 9 octobre fig.add_shape( type="line", x0="2023-10-09", y0=-0.5, x1="2023-10-09", y1=len(df)-0.5, line=dict(color="black", width=2, dash="dot"), ) # Ajouter les valeurs de progression en pourcentage for i, row in df.iterrows(): fig.add_annotation( x=row["Progress_Start"], y=row["Task"], text=f"{int(row['Progress'] * 100)}%", showarrow=True, arrowhead=2, ax=20, ay=-10 ) fig.update_yaxes(categoryorder="total ascending") fig.show()
import plotly.express as px import pandas as pd # Exemple de données avec une colonne de couleur et progression data = [ {"Task": "Tâche 1", "Start": "2023-10-01", "Finish": "2023-10-05", "Color": "blue", "Progress": 0.2}, {"Task": "Tâche 2", "Start": "2023-10-03", "Finish": "2023-10-10", "Color": "green", "Progress": 0}, {"Task": "Tâche 3", "Start": "2023-10-07", "Finish": "2023-10-15", "Color": "orange", "Progress": 0}, ] # Conversion des données en DataFrame df = pd.DataFrame(data) df["Start"] = pd.to_datetime(df["Start"]) df["Finish"] = pd.to_datetime(df["Finish"]) # Trier par date de début df = df.sort_values(by="Start") # Calculer la date de progression pour chaque tâche df["Progress_Start"] = df["Start"] + (df["Finish"] - df["Start"]) * df["Progress"] # Créer le diagramme de Gantt avec couleur par tâche et progression fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", color="Color", title="Diagramme de Gantt avec couleurs et progression par tâche") # Ajouter des marqueurs pour la progression fig.add_scatter(x=df["Progress_Start"], y=df["Task"], mode='markers', marker=dict(size=10, color='red'), name='Progression') # Ajouter une ligne pointillée sur le 9 octobre en rouge fig.add_shape( type="line", x0="2023-10-09", y0=-0.5, x1="2023-10-09", y1=len(df)-0.5, line=dict(color="red", width=2, dash="dot"), ) # Ajouter les valeurs de progression en pourcentage for i, row in df.iterrows(): fig.add_annotation( x=row["Progress_Start"], y=row["Task"], text=f"{int(row['Progress'] * 100)}%", showarrow=True, arrowhead=2, ax=20, ay=-10, font=dict(color='red') # Changer la couleur du texte en rouge ) # Mettre à jour l'ordre des catégories sur l'axe y fig.update_yaxes(categoryorder="total ascending") # Afficher le diagramme fig.show()