Source code for xarpes.settings_plots

# Copyright (C) 2025 xARPES Developers
# This program is free software under the terms of the GNU GPLv3 license.

"""Plotting and notebook behaviour settings for xARPES."""

import matplotlib.pyplot as plt

[docs] def plot_settings(name="default", register_pre_run=True): """Configure default plotting style for xARPES. Parameters ---------- name : {"default", "large"} Select a predefined style. register_pre_run : bool If True, register a Jupyter pre-run hook that closes figures. """ import matplotlib as mpl mpl.rc("xtick", labelsize=10, direction="in") mpl.rc("ytick", labelsize=10, direction="in") plt.rcParams["legend.frameon"] = False lw = dict(default=2.0, large=4.0)[name] mpl.rcParams.update({ "lines.linewidth": lw, "lines.markersize": 3, "xtick.major.size": 4, "xtick.minor.size": 2, "xtick.major.width": 0.8, "font.size": 16, "axes.ymargin": 0.15, }) if register_pre_run: _maybe_register_pre_run_close_all()
[docs] def _maybe_register_pre_run_close_all(): """Register a pre_run_cell hook once, and only inside Jupyter.""" from IPython import get_ipython if getattr(_maybe_register_pre_run_close_all, "_registered", False): return ip = get_ipython() if ip is None or ip.__class__.__name__ != "ZMQInteractiveShell": return def _close_all(_info): plt.close("all") ip.events.register("pre_run_cell", _close_all) _maybe_register_pre_run_close_all._registered = True