Плоский режим ноутбука с google colaboratory
Я пытаюсь провести совместную работу с сюжетным режимом ноутбука - я открываю новый ноутбук, копирую и вставляю следующий простой пример из графической документации, но не вижу выхода. В выходном пространстве есть большой пробел, где обычно будет сюжет.
Это прекрасно работает в моем локальном ноутбуке (это более новая версия сюжета, но в режиме автономной работы docs она должна работать с версией 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")
})
Ответы
Ответ 1
plotly
версия 4.x
Начиная с версии 4, рендеры plotly
знают о Colab, поэтому для отображения фигуры в Colab и Jupyter (и других записных книжках, таких как Kaggle, Azure, nteract) достаточно:
import plotly.graph_objects as go
fig = go.Figure( go.Scatter(x=[1,2,3], y=[1,3,2] ) )
fig.show()
plotly
версия 3.x
Вот пример, показывающий использование 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()
Ответ 2
configure_plotly_browser_state()
может быть выполнен перед запуском каждой ячейки с помощью ловушки IPython pre_run_cell:
import IPython
IPython.get_ipython().events.register('pre_run_cell', configure_plotly_browser_state)
Ответ 3
Вам нужно добавить метод, чтобы использовать 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
Ответ 4
Вам нужно изменить визуализацию по умолчанию. Вот выдержка из документации.
https://plot.ly/python/renderers/#setting-the-default-renderer
Текущие и доступные средства визуализации настраиваются с помощью 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"