Coverage for src/cell_abm_pipeline/tasks/make_box_figure.py: 0%
16 statements
« prev ^ index » next coverage.py v7.1.0, created at 2024-06-05 19:14 +0000
« prev ^ index » next coverage.py v7.1.0, created at 2024-06-05 19:14 +0000
1import matplotlib.figure as mpl
2import matplotlib.pyplot as plt
3import pandas as pd
4from prefect import task
7@task
8def make_box_figure(
9 keys: list[str], data: pd.DataFrame, xlabel: str = "", ylabel: str = ""
10) -> mpl.Figure:
11 fig = plt.figure(figsize=(4, 4), constrained_layout=True)
13 ax = fig.add_subplot()
14 ax.set_box_aspect(1)
16 for index, key in enumerate(keys):
17 group = data[data["key"] == key]
19 ax.boxplot(group["value"].values, labels=[key], positions=[index], widths=0.6)
20 ax.scatter(
21 group["key"],
22 group["value"],
23 s=10,
24 alpha=0.3,
25 c="k",
26 edgecolors="none",
27 )
29 ax.set_xlabel(xlabel, fontweight="bold")
30 ax.set_ylabel(ylabel, fontweight="bold")
32 return fig