https://colab.research.google.com/notebooks/charts.ipynb#scrollTo=WWbPMtDkO4xg

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

Это хорошо работает в моей локальной записной книжке (которая является более новой версией сюжета, но в автономном режиме их документов должна работать с версией 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")
})

Ответы на вопрос(3)

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


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

`` `

 matanster22 нояб. 2018 г., 19:29
Это становится элегантным, когда вы переворачиваете API-интерфейс plotly, где вы условно инициализируете для colab, при обнаружении запуска в среде выполнения colab (get_ipython().__class__.__module__ == "google.colab._shell"а не иначе.
 Max Ghenis04 июл. 2018 г., 03:52
Я получаю это:> Traceback (последний вызов был последним) <ipython-input-19-ac1874a09e95> в <module> () 1 импорт IPython ----> 2 IPython.get_ipython (). Events.unregister ('pre_run_cell', configure_plotly_browser_state) /usr/local/lib/python3.6/dist-packages/IPython/core/events.py in unregister (self, event, function) 62 def unregister (self, event, function): 63 "" "Удалить обратный вызов из данного события. "" "---> 64 self.callbacks [событие] .remove (функция) 65 66 триггер def (self, event, * args, ** kwargs): ValueError: list.remove (x) : х нет в списке
 tomwesolowski13 янв. 2019 г., 23:20
Не должно ли это бытьregister вызов?
Решение Вопроса

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

https://colab.research.google.com/notebook#fileId=14oudHx5e5r7hm1QcbZ24FVHXgVPD0k8f

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

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()
 Bob Smith13 нояб. 2017 г., 18:08
Plotly действительно нужно инициализировать для каждой ячейки. В Colab каждая ячейка отображается в видеiframe песочница, так что нет общего состояния инициализации между выходами.
 elphz13 нояб. 2017 г., 16:29
Спасибо! Похоже, чтоconfigure_plotly_browser_state() Должен быть вызван в каждой ячейке, где я хочу включить сюжет - это правильно? Вы знаете, возможно ли выполнить инициализацию для всего ноутбука?
 Max Ghenis04 июл. 2018 г., 03:46
Я добавил саму функцию в ответ. Обратите внимание, что вам нужно ссылатьсяplotly-latest.min.js скорее, чемplotly-1.5.1.min.js как в записной книжке.

чтобы использовать 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#scrollTo=WWbPMtDkO4xg

Ваш ответ на вопрос