Maps and cuts

Python

Create the complete axes layout first. Pass each row to erlab.plotting.plot_slices() through its axes argument:

import matplotlib.pyplot as plt
import erlab.plotting as eplt

energies = [-0.4, -0.2, 0.0]
ky_values = [0.0, 0.1, 0.3]

fig, axes = plt.subplots(
    2,
    3,
    figsize=(6.4, 4.0),
    layout="compressed",
    sharex="col",
    sharey="row",
)
eplt.plot_slices(
    [data],
    eV=energies,
    axes=axes[0],
    axis="image",
    gamma=0.5,
    same_limits=True,
    annotate=False,
)
eplt.plot_slices(
    [data],
    ky=ky_values,
    axes=axes[1],
    gamma=0.5,
    same_limits=True,
    annotate=False,
)
eplt.label_subplot_properties(axes[0], values={"eV": energies})
eplt.label_subplot_properties(axes[1], values={"ky": ky_values})
eplt.clean_labels(axes)

(Source code)

Two-row ARPES figure with three constant energy maps above three energy–momentum cuts

The number of axes in each row must match the number of requested slices. Use shared limits within a row when intensity differences between its panels must remain visible. Use independent limits when the task is only to compare feature positions.

Reference color limits

Use one panel as the intensity reference when its color limits are suitable for all slices:

figure, axes = eplt.plot_slices(
    [data],
    ky=[0.0, 0.1, 0.3],
    gamma=0.5,
    annotate=False,
)
eplt.unify_clim(axes, target=axes.flat[1])

(Source code)

Three energy-momentum cuts with color limits taken from the middle cut

The target axes supplies the color limits. Without target, unify_clim uses the lowest and highest color limits among the plotted mappables.

Figure Composer

  1. Layout: In Layout, set Rows to 2 and Columns to 3.

  2. Sources: In Sources, choose Add… and add the three-dimensional data array.

  3. Constant energy maps: Add a Slice Plot step and target the three axes in the top row. Select data under Inputs. Set Dimension to eV, Values to Manual values, and Manual to -0.4, -0.2, 0.0. Set Axis to image, Gamma to 0.5, and Match limits to True. Clear Annotate.

  4. Energy–momentum cuts: Add a second Slice Plot step and target the bottom row. Select data under Inputs. Set Dimension to ky, Values to Manual values, and Manual to 0.0, 0.1, 0.3. Set Gamma to 0.5 and Match limits to True. Clear Annotate.

  5. Slice labels: Add an ERLab Method step for label_subplot_properties on the top row. Set Values to {"eV": [-0.4, -0.2, 0.0]}. Add another step for the bottom row with {"ky": [0.0, 0.1, 0.3]}.

  6. Add an ERLab Method step for clean_labels and target all six axes.