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
« 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
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:
17 fig = plt.figure(
18 figsize=(3, 3 * (ylim[1] - ylim[0]) / (xlim[1] - xlim[0])), constrained_layout=True
19 )
21 ax = fig.add_subplot()
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)
31 ax.get_xaxis().set_ticks([])
32 ax.get_yaxis().set_ticks([])
33 ax.set_facecolor("#000")
35 for region in regions:
36 color = colors[region]
38 if index not in data[region][view]:
39 continue
41 for contour in data[region][view][index]:
42 ax.plot(contour[:, 0], contour[:, 1], linewidth=0.5, color=color)
44 return fig