Режим плотно записной книжки с коллаборацией Google

Я пробую колабораторию с режимом "Записная книжка" - я открываю новую записную книжку, копирую и вставляю следующий простой пример из документации заговора, но не вижу вывода. В выходном пространстве есть большой пробел, где обычно должен быть график.

Это хорошо работает в моей локальной записной книжке (которая является более новой версией сюжета, но в автономном режиме их документов должна работать с версией Google Colab) Есть идеи?

import plotly
from plotly.graph_objs import Scatter, Layout

plotly.offline.init_notebook_mode(connected=True)

plotly.offline.iplot({
    "data": [Scatter(x=[1, 2, 3, 4], y=[4, 3, 2, 1])],
    "layout": Layout(title="hello world")
})

2 ответа

Решение

Вот пример, показывающий использование Plotly в Colab. (Полностью требует пользовательской инициализации.)

https://colab.research.google.com/notebook

Вам нужно определить эту функцию:

def configure_plotly_browser_state():
  import IPython
  display(IPython.core.display.HTML('''
        <script src="/static/components/requirejs/require.js"></script>
        <script>
          requirejs.config({
            paths: {
              base: '/static/base',
              plotly: 'https://cdn.plot.ly/plotly-latest.min.js?noext',
            },
          });
        </script>
        '''))

И назовите это в каждой автономной ячейке построения графика:

configure_plotly_browser_state()

Просто пройти "colab" как значение параметра renderer в fig.show(renderer="colab")

пример:

import plotly.graph_objects as go
fig = go.Figure(
    data=[go.Bar(y=[2, 1, 3])],
    layout_title_text="A Figure Displayed with the 'colab' Renderer"
)
fig.show(renderer="colab")

https://i.stack.imgur.com/G8lsJ.png

Вам нужно изменить рендер по умолчанию. Вот выдержка из документации. https://plot.ly/python/renderers/

Текущие и доступные средства визуализации настраиваются с помощью plotly.io.renderersобъект конфигурации. Отобразите этот объект, чтобы увидеть текущее средство визуализации по умолчанию и список всех доступных средств визуализации.

>>>import plotly.io as pio
>>>pio.renderers


Renderers configuration
    -----------------------
        Default renderer: 'notebook_connected'
        Available renderers:
            ['plotly_mimetype', 'jupyterlab', 'nteract', 'vscode',
             'notebook', 'notebook_connected', 'kaggle', 'azure', 'colab',
             'cocalc', 'databricks', 'json', 'png', 'jpeg', 'jpg', 'svg',
             'pdf', 'browser', 'firefox', 'chrome', 'chromium', 'iframe',
             'iframe_connected', 'sphinx_gallery']

Соответственно, решение проблемы - указать рендер по умолчанию "colab".

import plotly.io as pio
pio.renderers.default = 'colab'

Вам нужно добавить метод, чтобы использовать Plotly в Colab.

def enable_plotly_in_cell():
  import IPython
  from plotly.offline import init_notebook_mode
  display(IPython.core.display.HTML('''<script src="/static/components/requirejs/require.js"></script>'''))
  init_notebook_mode(connected=False)

Этот метод должен выполняться для каждой ячейки, в которой отображается график Plotly.

Образец:

from plotly.offline import iplot
import plotly.graph_objs as go

enable_plotly_in_cell()

data = [
    go.Contour(
        z=[[10, 10.625, 12.5, 15.625, 20],
           [5.625, 6.25, 8.125, 11.25, 15.625],
           [2.5, 3.125, 5., 8.125, 12.5],
           [0.625, 1.25, 3.125, 6.25, 10.625],
           [0, 0.625, 2.5, 5.625, 10]]
    )
]
iplot(data)

Ссылка: https://colab.research.google.com/notebooks/charts.ipynb

configure_plotly_browser_state() может быть выполнен для каждой ячейки с помощью ловушки preyrun_cell IPython:

import IPython

IPython.get_ipython().events.unregister('pre_run_cell', configure_plotly_browser_state)

`` `

Другие вопросы по тегам