Source code for dantro.plot.funcs.basic
"""Holds basic plot functions for use with PyPlotCreator"""
import logging
import matplotlib.pyplot as plt
from ...data_mngr import DataManager
from ..utils.plot_func import is_plot_func
log = logging.getLogger(__name__)
# -----------------------------------------------------------------------------
[docs]@is_plot_func(creator="pyplot", use_helper=False)
def lineplot(
dm: DataManager,
*,
out_path: str,
y: str,
x: str = None,
fmt: str = None,
save_kwargs: dict = None,
**plot_kwargs,
):
"""Performs a simple lineplot using :py:func:`matplotlib.pyplot.plot`.
Args:
dm (DataManager): The data manager from which to retrieve the data
out_path (str): Where to store the plot to
y (str): The path to get to the y-data from the data tree
x (str, optional): The path to get to the x-data from the data tree
save_kwargs (dict, optional): Keyword arguments for
:py:func:`matplotlib.pyplot.savefig`
**plot_kwargs: Passed on to :py:func:`matplotlib.pyplot.plot`.
"""
# Get the data
x_data = dm[x] if x else None
y_data = dm[y]
# Assemble the arguments
args = [x_data, y_data] if x_data is not None else [y_data]
if fmt:
args.append(fmt)
# Call the plot function
plt.plot(*args, **plot_kwargs)
# Save and close figure
plt.savefig(out_path, **(save_kwargs if save_kwargs else {}))
plt.close()