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()Can't find a pure Python 3 wheel for: 'matplotlib-pyplot' See: https://pyodide.org/en/stable/usage/faq.html#why-can-t-micropip-find-a-pure-python-wheel-for-a-package Can't find a pure Python 3 wheel for: 'matplotlib-dates' See: https://pyodide.org/en/stable/usage/faq.html#why-can-t-micropip-find-a-pure-python-wheel-for-a-package
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
data = [
{"Task": "Tâche 1", "Start": "2023-10-01", "Finish": "2023-10-05", "Color": "blue"},
{"Task": "Tâche 2", "Start": "2023-10-03", "Finish": "2023-10-10", "Color": "green"},
{"Task": "Tâche 3", "Start": "2023-10-07", "Finish": "2023-10-15", "Color": "orange"},
]
df = pd.DataFrame(data)
df["Start"] = pd.to_datetime(df["Start"])
df["Finish"] = pd.to_datetime(df["Finish"])
# Créer le diagramme de Gantt avec couleur par tâche
fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", color="Color", title="Diagramme de Gantt avec couleurs par tâche")
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()