from pathlib import Path from typing import Generator import matplotlib.pyplot as plt import seaborn as sns import pandas as pd from ..utils import style_plot def generate_estimate_histplot(output_dir: Path, df: pd.DataFrame, **kwargs) -> Generator[Path]: """ Generates a styled histogram of the distribution of midpoint time estimates. """ style_plot() OUTPUT_PATH = output_dir / "estimate_distribution_histplot.png" fig, ax = plt.subplots() sns.histplot( data=df, x='estimate_midpoint', log_scale=True, ax=ax ) ax.set_xlabel("Task Time (minutes, log scale)") ax.set_ylabel("Number of Tasks") ax.set_title("Distribution of Time Estimates for Atomic Tasks") plt.tight_layout() plt.savefig(OUTPUT_PATH) plt.close(fig) yield OUTPUT_PATH