Source code for ax.utils.notebook.plotting

#!/usr/bin/env python3
# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.

# pyre-strict

from logging import Logger

from ax.plot.base import AxPlotConfig, AxPlotTypes
from ax.plot.render import _js_requires, _wrap_js, plot_config_to_html
from ax.utils.common.logger import get_logger
from IPython.display import display
from plotly.offline import init_notebook_mode, iplot

logger: Logger = get_logger(__name__)


[docs] def init_notebook_plotting(offline: bool = False) -> None: """Initialize plotting in notebooks, either in online or offline mode.""" display_bundle = {"text/html": _wrap_js(_js_requires(offline=offline))} display(display_bundle, raw=True) logger.info("Injecting Plotly library into cell. Do not overwrite or delete cell.") logger.info( """ Please see (https://ax.dev/tutorials/visualizations.html#Fix-for-plots-that-are-not-rendering) if visualizations are not rendering. """.strip() ) init_notebook_mode()
[docs] def render(plot_config: AxPlotConfig, inject_helpers: bool = False) -> None: """Render plot config.""" if plot_config.plot_type == AxPlotTypes.GENERIC: iplot(plot_config.data) elif plot_config.plot_type == AxPlotTypes.HTML: assert "text/html" in plot_config.data display(plot_config.data, raw=True) else: display_bundle = { "text/html": plot_config_to_html(plot_config, inject_helpers=inject_helpers) } display(display_bundle, raw=True)