56 lines
2.5 KiB
Python
56 lines
2.5 KiB
Python
import matplotlib.pyplot as plt
|
||
import matplotlib.dates as mdates
|
||
from datetime import datetime
|
||
import pandas as pd
|
||
|
||
# Define updated tasks and durations
|
||
updated_tasks = [
|
||
("Refactor BSV modules", "2025-06-01", "2025-07-01"),
|
||
("Setup C benchmark suite", "2025-06-01", "2025-07-01"),
|
||
("EuroSys paper revisions (feedback)", "2025-06-01", "2025-07-31"),
|
||
("Formal progression review", "2025-06-01", "2025-07-01"),
|
||
("Submit EuroSys for preliminary feedback", "2025-06-01", "2025-07-01"),
|
||
("Debug Toooba memory pipeline (TLB bypass)", "2025-07-01", "2025-08-31"),
|
||
("Validate C benchmark suite", "2025-07-01", "2025-08-01"),
|
||
("Documentation for second paper", "2025-07-15", "2025-08-31"),
|
||
("Finalise EuroSys revisions", "2025-07-01", "2025-07-31"),
|
||
("Continue memory debugging", "2025-08-01", "2025-09-30"),
|
||
("Draft second paper (intro/method)", "2025-08-01", "2025-09-30"),
|
||
("Generate experimental results", "2025-08-15", "2025-09-30"),
|
||
("Publish EuroSys paper", "2025-09-01", "2025-10-01"),
|
||
("Benchmark Toooba design", "2025-09-01", "2025-10-31"),
|
||
("Draft eval & analysis (second paper)", "2025-09-15", "2025-10-31"),
|
||
("Third experimental phase", "2025-10-01", "2025-11-30"),
|
||
("Modify allocators (remove mmap)", "2025-10-15", "2025-11-30"),
|
||
("Finalise second paper", "2025-11-01", "2025-11-30"),
|
||
("Strip huge-page optimisations", "2025-11-01", "2025-12-31"),
|
||
("Analyse instruction-level reductions", "2025-11-01", "2025-12-31"),
|
||
("Draft third research paper", "2025-11-15", "2025-12-31"),
|
||
("Evaluate/profile third paper", "2025-12-01", "2026-01-31"),
|
||
("Write thesis chapters (Exp 1 & 2)", "2025-12-15", "2026-01-31"),
|
||
("Thesis development & refinement", "2026-01-01", "2026-09-30"),
|
||
("Submit third paper", "2026-01-01", "2026-09-30"),
|
||
("Prepare full dissertation", "2026-01-01", "2026-09-30"),
|
||
]
|
||
|
||
# Convert to DataFrame
|
||
df = pd.DataFrame(updated_tasks, columns=["Task", "Start", "End"])
|
||
df["Start"] = pd.to_datetime(df["Start"])
|
||
df["End"] = pd.to_datetime(df["End"])
|
||
df["Duration"] = df["End"] - df["Start"]
|
||
|
||
# Plot
|
||
fig, ax = plt.subplots(figsize=(14, 12))
|
||
for i, row in df.iterrows():
|
||
ax.barh(i, row["Duration"].days, left=row["Start"], height=0.8)
|
||
|
||
ax.set_yticks(range(len(df)))
|
||
ax.set_yticklabels(df["Task"])
|
||
ax.xaxis.set_major_locator(mdates.MonthLocator())
|
||
ax.xaxis.set_major_formatter(mdates.DateFormatter("%b %Y"))
|
||
plt.xticks(rotation=45)
|
||
plt.title("PhD Gantt Chart: June 2025 – September 2026")
|
||
plt.tight_layout()
|
||
plt.grid(axis='x')
|
||
plt.show()
|