Coverage for src/cell_abm_pipeline/tasks/make_range_figure.py: 0%
20 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 numpy as np
4from prefect import task
7@task
8def make_range_figure(data: dict) -> mpl.Figure:
9 fig = plt.figure(figsize=(4, 4), constrained_layout=True)
11 ax = fig.add_subplot()
12 ax.set_box_aspect(1)
13 ax.set_xlabel("Time (hours)")
15 time = data["time"]
16 mean = np.array([np.nan if d == "nan" else d for d in data["mean"]])
17 std = np.array([np.nan if d == "nan" else d for d in data["std"]])
18 mins = np.array([np.nan if d == "nan" else d for d in data["min"]])
19 maxs = np.array([np.nan if d == "nan" else d for d in data["max"]])
21 ax.fill_between(time, mins, maxs, color="#eee")
22 ax.plot(time, mean + std, color="#000", linestyle="dashed", linewidth=0.5)
23 ax.plot(time, mean - std, color="#000", linestyle="dashed", linewidth=0.5)
24 ax.plot(time, mean, color="#000", linewidth=1)
26 return fig