Source code for quantify_core.analysis.interpolation_analysis

# Repository: https://gitlab.com/quantify-os/quantify-core
# Licensed according to the LICENCE file on the main branch
import matplotlib.pyplot as plt

from quantify_core.analysis import base_analysis as ba
from quantify_core.visualization import mpl_plotting as qpl
from quantify_core.visualization.plot_interpolation import interpolate_heatmap


[docs] class InterpolationAnalysis2D(ba.BaseAnalysis): """ An analysis class which generates a 2D interpolating plot for each yi variable in the dataset. """
[docs] def create_figures(self): """Create a 2D interpolating figure for each yi.""" for y_variable in self.dataset.data_vars: variable_name = self.dataset[y_variable].attrs["long_name"] unit = self.dataset[y_variable].units fig_id = f"{variable_name} interpolating" x_values_0 = self.dataset["x0"].values x_values_1 = self.dataset["x1"].values y_values = self.dataset[y_variable].values fig, ax = plt.subplots() # Interpolated 2D heatmap extent = ( min(x_values_0), max(x_values_0), min(x_values_1), max(x_values_1), ) interpolated_datset = interpolate_heatmap( x_values_0, x_values_1, y_values, interp_method="linear", ) mappable = ax.imshow( interpolated_datset[2], extent=extent, aspect="auto", origin="lower", ) cbar = fig.colorbar(mappable, ax=ax) # Scatter plot of measured datapoints ax.plot( x_values_0, x_values_1, marker=".", linewidth=0.5, linestyle="", markerfacecolor="red", markeredgecolor="red", markersize=3, c="white", alpha=1, ) qpl.set_xlabel( self.dataset["x0"].attrs["long_name"], self.dataset["x0"].units, ax ) qpl.set_ylabel( self.dataset["x1"].attrs["long_name"], self.dataset["x1"].units, ax ) qpl.set_cbarlabel(cbar, variable_name, unit) qpl.set_suptitle_from_dataset( fig, self.dataset, f"{variable_name} interpolating analysis:" ) self.figs_mpl[fig_id] = fig self.axs_mpl[fig_id] = ax