```{python}
#| code-fold: true
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
vendor_h_full_x = np.array([8, 16, 24, 32, 48, 64, 128, 256, 512, 1024, 2048, 4096], dtype=float)
vendor_h_full_y = np.array([5700.0, 3450.0, 2450.0, 1900.0, 1300.0, 1000.0, 510.0, 260.0, 130.0, 66.0, 33.0, 16.5], dtype=float)
vendor_h_reduced_x = np.array([8, 16, 24, 32, 48, 64, 128, 256, 512, 1024, 2048, 4096], dtype=float)
vendor_h_reduced_y = np.array([6500.0, 4000.0, 3000.0, 2500.0, 1800.0, 1400.0, 700.0, 360.0, 190.0, 95.0, 46.0, 23.4], dtype=float)
vendor_w_scan_x = np.array([48, 64, 128, 256, 512, 1024, 2048, 2560, 2688, 2752, 2816, 2864, 2880, 2944, 3072, 3584, 3968, 4096], dtype=float)
vendor_w_scan_y = np.array([23.6, 23.6, 23.6, 23.6, 23.6, 23.6, 23.6, 23.6, 23.6, 23.5, 23.5, 23.4, 23.3, 23.0, 22.2, 18.9, 17.1, 16.5], dtype=float)
measured_h_full_x = np.array([8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096], dtype=float)
measured_h_full_y = np.array([5882.352941, 3663.003663, 1851.851852, 974.658869, 510.204082, 260.416667, 131.354262, 65.980470, 33.018556, 16.553551], dtype=float)
measured_h_reduced_x = np.array([8, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096], dtype=float)
measured_h_reduced_y = np.array([6410.256410, 23.661359, 23.614981, 23.622233, 23.618328, 23.623907, 23.598263, 23.627815, 23.584906], dtype=float)
measured_w_scan_x = np.array([48, 64, 128, 256, 512, 1024, 2048, 2864, 2880, 2896, 2944, 3072, 3584, 3968, 4096], dtype=float)
measured_w_scan_y = np.array([23.661359, 23.614981, 23.622233, 23.618328, 23.623907, 23.598263, 23.627815, 23.584906, 23.487411, 23.319264, 22.969497, 22.015279, 18.913245, 17.085255, 16.553551], dtype=float)
fig, axs = create_figure(
number_rows=1,
number_columns=3,
subplot_size=(3.5, 3.0),
margin_subplot_size=(0.6, 0.6),
margin_figure_size=(0.8, 0.4, 0.6, 0.8),
figure_title="Axis Camera Frame Rate Analysis"
)
power_of_2_ticks = [2**i for i in range(3, 13)]
power_of_2_labels = [str(t) for t in power_of_2_ticks]
ax = axs[0, 0]
plots_list_h_full = [
{"x": vendor_h_full_x, "y": vendor_h_full_y, "linestyle": "--", "linewidth": 2.5, "color": (0.7, 0.7, 0.7, 1), "marker": "s", "markersize": 7, "markerfacecolor": (1, 1, 1, 1), "markeredgecolor": (0.7, 0.7, 0.7, 1), "markeredgewidth": 1.5, "label": "Vendor"},
{"x": measured_h_full_x, "y": measured_h_full_y, "linestyle": "-", "linewidth": 2.5, "color": (0, 0, 0, 1), "marker": "o", "markersize": 6, "markerfacecolor": (0, 0, 0, 1), "markeredgecolor": (0, 0, 0, 1), "markeredgewidth": 1.5, "label": "Measured"},
]
format_subplot_1d(ax, plots=plots_list_h_full, x_axis_label={"xlabel": "ROI Height [pixels]", "fontsize": 11, "fontname": "Calibri"}, y_axis_label={"ylabel": "Frame Rate [Hz]", "fontsize": 11, "fontname": "Calibri"}, xscale="log", yscale="log", legend_loc="lower left")
ax.set_xticks(power_of_2_ticks)
ax.set_xticklabels(power_of_2_labels)
ax.set_title("Width = 4096", fontsize=10, fontname="Calibri")
ax = axs[0, 1]
plots_list_h_reduced = [
{"x": vendor_h_reduced_x, "y": vendor_h_reduced_y, "linestyle": "--", "linewidth": 2.5, "color": (0.7, 0.7, 0.7, 1), "marker": "s", "markersize": 7, "markerfacecolor": (1, 1, 1, 1), "markeredgecolor": (0.7, 0.7, 0.7, 1), "markeredgewidth": 1.5, "label": "Vendor"},
{"x": measured_h_reduced_x, "y": measured_h_reduced_y, "linestyle": "-", "linewidth": 2.5, "color": (0, 0, 0, 1), "marker": "o", "markersize": 6, "markerfacecolor": (0, 0, 0, 1), "markeredgecolor": (0, 0, 0, 1), "markeredgewidth": 1.5, "label": "Measured"},
]
format_subplot_1d(ax, plots=plots_list_h_reduced, x_axis_label={"xlabel": "ROI Height [pixels]", "fontsize": 11, "fontname": "Calibri"}, y_axis_label={"ylabel": "Frame Rate [Hz]", "fontsize": 11, "fontname": "Calibri"}, xscale="log", yscale="log", legend_loc="lower left")
ax.set_xticks(power_of_2_ticks)
ax.set_xticklabels(power_of_2_labels)
ax.set_title("Width < 2865", fontsize=10, fontname="Calibri")
ax = axs[0, 2]
plots_list_w = [
{"x": vendor_w_scan_x, "y": vendor_w_scan_y, "linestyle": "--", "linewidth": 2.5, "color": (0.7, 0.7, 0.7, 1), "marker": "s", "markersize": 7, "markerfacecolor": (1, 1, 1, 1), "markeredgecolor": (0.7, 0.7, 0.7, 1), "markeredgewidth": 1.5, "label": "Vendor"},
{"x": measured_w_scan_x, "y": measured_w_scan_y, "linestyle": "-", "linewidth": 2.5, "color": (0, 0, 0, 1), "marker": "o", "markersize": 6, "markerfacecolor": (0, 0, 0, 1), "markeredgecolor": (0, 0, 0, 1), "markeredgewidth": 1.5, "label": "Measured"},
]
format_subplot_1d(ax, plots=plots_list_w, x_axis_label={"xlabel": "ROI Width [pixels]", "fontsize": 11, "fontname": "Calibri"}, y_axis_label={"ylabel": "Frame Rate [Hz]", "fontsize": 11, "fontname": "Calibri"}, xscale="log", yscale="linear", legend_loc="lower left")
ax.set_xticks(power_of_2_ticks)
ax.set_xticklabels(power_of_2_labels)
ax.set_title("Height = 4096", fontsize=10, fontname="Calibri")
plt.show()
```