Source code for nested_grid_plotter._config
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2026 Antoine COLLET
from pathlib import Path
import matplotlib.font_manager as font_manager
import matplotlib.pyplot as plt
def _register_default_fonts(path_to_font_files: Path) -> None:
font_defs = (
("TeXGyreHeros", "TeXGyreHeros", "TeXGyreHeros", "TeXGyreHeros"),
("normal", "bold", "normal", "bold"),
("normal", "normal", "italic", "italic"),
(
"texgyreheros/texgyreheros-regular.otf",
"texgyreheros/texgyreheros-bold.otf",
"texgyreheros/texgyreheros-italic.otf",
"texgyreheros/texgyreheros-bolditalic.otf",
),
)
for name, weight, style, path in zip(*font_defs):
_path = path_to_font_files.joinpath(path)
assert _path.is_file()
font_entry = font_manager.FontEntry(
fname=str(_path),
name=name,
weight=weight,
style=style,
)
font_manager.fontManager.ttflist.insert(0, font_entry)
[docs]
def apply_nice_default_rc_params() -> None:
"""
Apply nice rc parameters for matplotlib.
It relies on the open TeXGyreHeros font which is provided with the package.
.. versionadded:: 2.1.0
"""
plt.plot()
plt.close() # required for the plot to update
plt.rcParams.update(
{
"font.sans-serif": ["TeXGyreHeros", "DejaVu Sans"],
"font.size": 16,
"text.usetex": False,
"mathtext.fontset": "cm",
"savefig.format": "svg",
"svg.fonttype": "none", # to store text as text, not as path
"savefig.facecolor": "w",
"savefig.edgecolor": "k",
"savefig.dpi": 300,
"figure.constrained_layout.use": True,
"figure.facecolor": "w",
"axes.titleweight": "bold",
"axes.labelweight": "bold", # weight of the x and y labels
"figure.titleweight": "bold",
"axes.titlesize": 18,
"figure.titlesize": 22,
"animation.frame_format": "svg",
}
)