Coverage for src/cell_abm_pipeline/tasks/make_contour_figure.py: 0%

23 statements  

« prev     ^ index     » next       coverage.py v7.1.0, created at 2024-06-05 19:14 +0000

1import matplotlib as mpl 

2import matplotlib.pyplot as plt 

3from prefect import task 

4 

5 

6@task 

7def make_contour_figure( 

8 data: dict, 

9 index: int, 

10 view: str, 

11 regions: list[str], 

12 xlim: tuple[float, float], 

13 ylim: tuple[float, float], 

14 colors: dict[str, str], 

15) -> mpl.figure.Figure: 

16 

17 fig = plt.figure( 

18 figsize=(3, 3 * (ylim[1] - ylim[0]) / (xlim[1] - xlim[0])), constrained_layout=True 

19 ) 

20 

21 ax = fig.add_subplot() 

22 

23 if view == "top": 

24 ax.invert_yaxis() 

25 ax.set_xlim(xlim) 

26 ax.set_ylim((ylim[1], ylim[0])) 

27 else: 

28 ax.set_xlim(xlim) 

29 ax.set_ylim(ylim) 

30 

31 ax.get_xaxis().set_ticks([]) 

32 ax.get_yaxis().set_ticks([]) 

33 ax.set_facecolor("#000") 

34 

35 for region in regions: 

36 color = colors[region] 

37 

38 if index not in data[region][view]: 

39 continue 

40 

41 for contour in data[region][view][index]: 

42 ax.plot(contour[:, 0], contour[:, 1], linewidth=0.5, color=color) 

43 

44 return fig