Source code for ax.utils.notebook.plotting
#!/usr/bin/env python3
# Copyright (c) Facebook, Inc. and its affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
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 = get_logger("ipy_plotting")
[docs]def init_notebook_plotting(offline=False):
"""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."
)
init_notebook_mode()
[docs]def render(plot_config: AxPlotConfig, inject_helpers=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)