piel.visual.plot.basic
======================

.. py:module:: piel.visual.plot.basic


Attributes
----------

.. autoapisummary::

   piel.visual.plot.basic.logger


Functions
---------

.. autoapisummary::

   piel.visual.plot.basic.plot_simple
   piel.visual.plot.basic.plot_simple_multi_row
   piel.visual.plot.basic.plot_simple_multi_row_list


Module Contents
---------------

.. py:data:: logger

.. py:function:: plot_simple(x_data: numpy.ndarray, y_data: numpy.ndarray, label: Optional[str] = None, ylabel: str | piel.types.Unit | None = None, xlabel: str | piel.types.Unit | None = None, fig: Optional[Any] = None, axs: Optional[List[Any]] = None, title: Optional[str] = None, plot_args: list = None, plot_kwargs: dict = None, figure_kwargs: dict = None, legend_kwargs: dict = None, title_kwargs: dict = None, xlabel_kwargs: dict = None, ylabel_kwargs: dict = None, *args, **kwargs) -> tuple

   Plot a simple line graph. This function abstracts the basic plotting functionality
   while keeping the flexibility of the matplotlib library, allowing customization of
   labels, titles, and figure properties.

   :param x_data: Data for the X-axis.
   :type x_data: np.ndarray
   :param y_data: Data for the Y-axis.
   :type y_data: np.ndarray
   :param label: Label for the plot line, useful for legends. Defaults to None.
   :type label: Optional[str], optional
   :param ylabel: Label for the Y-axis, or a Unit object with a `label` and `base` attribute. Defaults to None.
   :type ylabel: str | Unit | None, optional
   :param xlabel: Label for the X-axis, or a Unit object with a `label` and `base` attribute. Defaults to None.
   :type xlabel: str | Unit | None, optional
   :param fig: Matplotlib Figure object to be used. Defaults to None.
   :type fig: Optional[Any], optional
   :param axs: List of Matplotlib Axes objects. Defaults to None.
   :type axs: Optional[List[Any]], optional
   :param title: Title of the plot. Defaults to None.
   :type title: Optional[str], optional
   :param plot_args: Positional arguments passed to plt.plot(). Defaults to None.
   :type plot_args: list, optional
   :param plot_kwargs: Keyword arguments passed to plt.plot(). Defaults to None.
   :type plot_kwargs: dict, optional
   :param figure_kwargs: Keyword arguments for figure creation. Defaults to None.
   :type figure_kwargs: dict, optional
   :param legend_kwargs: Keyword arguments for legend customization. Defaults to None.
   :type legend_kwargs: dict, optional
   :param title_kwargs: Keyword arguments for title customization. Defaults to None.
   :type title_kwargs: dict, optional
   :param xlabel_kwargs: Keyword arguments for X-axis label customization. If 'show' is set to False, the X-axis label will not be displayed. Defaults to None.
   :type xlabel_kwargs: dict, optional
   :param ylabel_kwargs: Keyword arguments for Y-axis label customization. If 'show' is set to False, the Y-axis label will not be displayed. Defaults to None.
   :type ylabel_kwargs: dict, optional
   :param \*args: Additional positional arguments for plt.plot().
   :param \*\*kwargs: Additional keyword arguments for plt.plot().

   :returns: The figure and axes of the plot.
   :rtype: Tuple[plt.Figure, plt.Axes]


.. py:function:: plot_simple_multi_row(data: pandas.DataFrame, x_axis_column_name: str = 't', row_list: Optional[List[str]] = None, y_label: Optional[List[str]] = None, x_label: Optional[str] = None, titles: Optional[List[str]] = None, subplot_spacing: float = 0.15) -> Any

   Plot multiple rows of files on separate subplots, sharing the same x-axis.

   :param data: Data to plot.
   :type data: pd.DataFrame
   :param x_axis_column_name: Column name of the x-axis. Defaults to "t".
   :type x_axis_column_name: str, optional
   :param row_list: List of column names to plot. Defaults to None.
   :type row_list: Optional[List[str]], optional
   :param y_label: List of Y-axis titles for each subplot. Defaults to None.
   :type y_label: Optional[List[str]], optional
   :param x_label: Title of the x-axis. Defaults to None.
   :type x_label: Optional[str], optional
   :param titles: Titles for each subplot. Defaults to None.
   :type titles: Optional[List[str]], optional
   :param subplot_spacing: Spacing between subplots. Defaults to 0.3.
   :type subplot_spacing: float, optional

   :returns: The matplotlib figure containing the subplots.
   :rtype: plt.Figure


.. py:function:: plot_simple_multi_row_list(data: list[tuple[numpy.ndarray, numpy.ndarray]], labels: Optional[List[Optional[str]]] = None, y_labels: Optional[List[Optional[str]]] = None, x_label: Optional[str] = None, titles: Optional[List[Optional[str]]] = None, fig: Optional[Any] = None, axs: Optional[List[Any]] = None, plot_args: Optional[List[List[Any]]] = None, plot_kwargs: Optional[List[dict[str, Any]]] = None, figure_kwargs: Optional[dict[str, Any]] = None, legend_kwargs: Optional[dict[str, Any]] = None, title_kwargs: Optional[dict[str, Any]] = None, subplot_spacing: float = 0.15, *args, **kwargs) -> tuple[Any, List[Any]]

   Plot multiple (x_data, y_data) pairs on separate subplots, similar to plot_simple.

   :param data: List of tuples containing x and y data.
   :type data: List[Tuple[np.ndarray, np.ndarray]]
   :param labels: List of labels for each plot. Defaults to None.
   :type labels: Optional[List[Optional[str]]], optional
   :param y_labels: List of Y-axis labels for each subplot. Defaults to None.
   :type y_labels: Optional[List[Optional[str]]], optional
   :param x_label: Common X-axis label for all subplots. Defaults to None.
   :type x_label: Optional[str], optional
   :param titles: List of titles for each subplot. Defaults to None.
   :type titles: Optional[List[Optional[str]]], optional
   :param fig: Matplotlib figure. If None, a new figure is created. Defaults to None.
   :type fig: Optional[plt.Figure], optional
   :param axs: List of Matplotlib axes. If None, new axes are created. Defaults to None.
   :type axs: Optional[List[plt.Axes]], optional
   :param plot_args: List of positional arguments for each plot. Defaults to None.
   :type plot_args: Optional[List[List[Any]]], optional
   :param plot_kwargs: List of keyword arguments for each plot. Defaults to None.
   :type plot_kwargs: Optional[List[dict[str, Any]]], optional
   :param figure_kwargs: Keyword arguments for figure creation. Defaults to None.
   :type figure_kwargs: Optional[dict[str, Any]]], optional
   :param legend_kwargs: Keyword arguments for legends. Defaults to None.
   :type legend_kwargs: Optional[dict[str, Any]]], optional
   :param title_kwargs: Keyword arguments for titles. Defaults to None.
   :type title_kwargs: Optional[dict[str, Any]]], optional
   :param subplot_spacing: Spacing between subplots. Defaults to 0.15.
   :type subplot_spacing: float, optional
   :param \*args: Additional positional arguments passed to plt.plot().
   :param \*\*kwargs: Additional keyword arguments passed to plt.plot().

   :returns: The figure and list of axes of the plot.
   :rtype: Tuple[plt.Figure, List[plt.Axes]]


