Source code for piel.visual.experimental.dc.measurement_data_collection
from piel.types.experimental import DCSweepMeasurementDataCollection
from piel.visual import create_plot_containers, save
[docs]
def plot_two_port_dc_sweep(
dc_sweep_collection: DCSweepMeasurementDataCollection,
fig=None,
axs=None,
title: str = "",
label_list: list = None,
**kwargs,
) -> tuple:
"""
This will always plot on the first axes. Provide subset if desired.
"""
if (fig is None) and (axs is None):
fig, axs = create_plot_containers(
container_list=dc_sweep_collection.collection, axes_structure="overlay"
)
i = 0
for dc_sweep_i in dc_sweep_collection.collection:
if label_list is not None:
# TODO improve this.
axs[0].plot(
dc_sweep_i.inputs[0].trace_list[0].values,
dc_sweep_i.outputs[0].trace_list[0].values,
label=r"$V_{dd}$" + f" = {label_list[i]}",
)
else:
axs[0].plot(
dc_sweep_i.inputs[0].trace_list[0].values,
dc_sweep_i.outputs[0].trace_list[0].values,
)
i += 1
axs[0].legend(loc="lower right")
axs[0].set_xlabel(r"$V_{in}$ $V$")
axs[0].set_ylabel("\n" + r"$V_{out}$ $V$")
axs[0].set_title(title)
# Save the figure if 'path' is provided in kwargs
save(fig, **kwargs)
return fig, axs