Source code for cell_abm_pipeline.tasks.make_contour_figure
import matplotlib as mpl
import matplotlib.pyplot as plt
from prefect import task
[docs]@task
def make_contour_figure(
data: dict,
index: int,
view: str,
regions: list[str],
xlim: tuple[float, float],
ylim: tuple[float, float],
colors: dict[str, str],
) -> mpl.figure.Figure:
fig = plt.figure(
figsize=(3, 3 * (ylim[1] - ylim[0]) / (xlim[1] - xlim[0])), constrained_layout=True
)
ax = fig.add_subplot()
if view == "top":
ax.invert_yaxis()
ax.set_xlim(xlim)
ax.set_ylim((ylim[1], ylim[0]))
else:
ax.set_xlim(xlim)
ax.set_ylim(ylim)
ax.get_xaxis().set_ticks([])
ax.get_yaxis().set_ticks([])
ax.set_facecolor("#000")
for region in regions:
color = colors[region]
if index not in data[region][view]:
continue
for contour in data[region][view][index]:
ax.plot(contour[:, 0], contour[:, 1], linewidth=0.5, color=color)
return fig