Skip to content

apply_default_layout

yohou.plotting._utils.apply_default_layout(fig, title=None, x_label=None, y_label=None, width=None, height=None, hovermode=None)

Apply default layout configuration to a figure.

Parameters

Name Type Description Default
fig Figure

Plotly figure to apply layout to.

required
title str | None

Plot title.

None
x_label str | None

X-axis label.

None
y_label str | None

Y-axis label.

None
width int | None

Plot width in pixels.

None
height int | None

Plot height in pixels.

None
hovermode str | None

Plotly hovermode (e.g. "x unified"). None keeps the default ("closest" from :data:DEFAULT_LAYOUT).

None

Returns

Type Description
Figure

Figure with applied layout.

Examples

>>> import plotly.graph_objects as go
>>> from yohou.plotting._utils import apply_default_layout
>>> fig = go.Figure()
>>> fig = apply_default_layout(fig, title="Test", x_label="Time")
>>> fig.layout.title.text
'Test'

Source Code

Show/Hide source
def apply_default_layout(
    fig: go.Figure,
    title: str | None = None,
    x_label: str | None = None,
    y_label: str | None = None,
    width: int | None = None,
    height: int | None = None,
    hovermode: str | None = None,
) -> go.Figure:
    """
    Apply default layout configuration to a figure.

    Parameters
    ----------
    fig : go.Figure
        Plotly figure to apply layout to.
    title : str | None, default=None
        Plot title.
    x_label : str | None, default=None
        X-axis label.
    y_label : str | None, default=None
        Y-axis label.
    width : int | None, default=None
        Plot width in pixels.
    height : int | None, default=None
        Plot height in pixels.
    hovermode : str | None, default=None
        Plotly hovermode (e.g. ``"x unified"``).  ``None`` keeps the
        default (``"closest"`` from :data:`DEFAULT_LAYOUT`).

    Returns
    -------
    go.Figure
        Figure with applied layout.

    Examples
    --------
    >>> import plotly.graph_objects as go
    >>> from yohou.plotting._utils import apply_default_layout
    >>> fig = go.Figure()
    >>> fig = apply_default_layout(fig, title="Test", x_label="Time")
    >>> fig.layout.title.text
    'Test'
    """
    layout_update: dict[str, Any] = copy.deepcopy(DEFAULT_LAYOUT)

    if title is not None:
        layout_update["title"]["text"] = title
    if x_label is not None:
        layout_update["xaxis"]["title"] = x_label
    if y_label is not None:
        layout_update["yaxis"]["title"] = y_label
    layout_update["width"] = width if width is not None else DEFAULT_WIDTH
    if height is not None:
        layout_update["height"] = height
    if hovermode is not None:
        layout_update["hovermode"] = hovermode

    fig.update_layout(layout_update)
    return fig