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

1import matplotlib.figure as mpl 

2import matplotlib.pyplot as plt 

3import numpy as np 

4from prefect import task 

5 

6 

7@task 

8def make_range_figure(data: dict) -> mpl.Figure: 

9 fig = plt.figure(figsize=(4, 4), constrained_layout=True) 

10 

11 ax = fig.add_subplot() 

12 ax.set_box_aspect(1) 

13 ax.set_xlabel("Time (hours)") 

14 

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"]]) 

20 

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) 

25 

26 return fig