如何在Google合作笔记本中显示绘图输出?

时间:2019-01-03 19:56:57

标签: python jupyter-notebook plotly google-colaboratory

我整天都在搜索如何在Google colajuatory jupyter笔记本中显示绘图的输出。有一个stackoverflow问题,还有来自google colaboratory的官方教程,但它们都不对我有用。

官方链接:
https://colab.research.google.com/notebooks/charts.ipynb#scrollTo=hFCg8XrdO4xj

stackoverflow问题:
Plotly notebook mode with google colaboratory
https://colab.research.google.com/drive/14oudHx5e5r7hm1QcbZ24FVHXgVPD0k8f#scrollTo=8RCjUVpi2_xd

内置的Google colatial绘图版本是1.12.12。

测试绘图版本

import plotly
plotly.__version__
1.12.12

加载库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

安装Google驱动器

from google.colab import drive
drive.mount('/content/drive')

dat_dir = 'drive/My Drive/Colab Notebooks/data/'

Google官方验证方法(失败)

# https://colab.research.google.com/notebooks/charts.ipynb#scrollTo=hFCg8XrdO4xj
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)

测试官方建议(失败)

import plotly.plotly as py
import numpy as np
from plotly.offline import iplot
from plotly.graph_objs import Contours, Histogram2dContour, Marker, Scatter

enable_plotly_in_cell()

x = np.random.randn(2000)
y = np.random.randn(2000)
iplot([Histogram2dContour(x=x, y=y, contours=Contours(coloring='heatmap')),
       Scatter(x=x, y=y, mode='markers', marker=Marker(color='white', size=3, opacity=0.3))], show_link=False)

Stackoverflow Bob Smith方法

# https://stackoverflow.com/questions/47230817/plotly-notebook-mode-with-google-colaboratory
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-1.5.1.min.js?noext',
            },
          });
        </script>
        '''))

测试鲍勃·史密斯方法(失败)

# https://colab.research.google.com/drive/14oudHx5e5r7hm1QcbZ24FVHXgVPD0k8f#scrollTo=8RCjUVpi2_xd
import plotly.plotly as py
import numpy as np
from plotly.offline import init_notebook_mode, iplot
from plotly.graph_objs import Contours, Histogram2dContour, Marker, Scatter

configure_plotly_browser_state()

init_notebook_mode(connected=False)

x = np.random.randn(2000)
y = np.random.randn(2000)
iplot([Histogram2dContour(x=x, y=y, contours=Contours(coloring='heatmap')),
       Scatter(x=x, y=y, mode='markers', marker=Marker(color='white', size=3, opacity=0.3))], show_link=False)

问题

如何在Google colaboratory中显示绘图输出?

可以吗?如果可以,哪种版本的plotly或袖扣适合您?

如果无法显示,是否可以将输出文件另存为.html在我们的google驱动器中,然后手动打开并查看它们?

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

我也很努力地在Google colab中显示可绘制的图形,偶然发现了这个线程,在此您通过网络解释了不同解决方案的问题。每个解决方案的感觉都是相同的。最后,当我遇到this video.

时,搜索结束了

我遵循了他的方法(可能与您已经尝试过的方法相似),这对我很有用。

  1. 根据建议通过!pip install plotly --upgrade 重新启动运行时在colab中进行图式升级。
  2. 评论升级选项,然后重新运行笔记本电脑
  3. 定义功能 configure_plotly_browser_state ()
  4. 调用绘图库
  5. 要在每个要调用iplot的单元格中调用以下函数和笔记本模式

    configure_plotly_browser_state()

    init_notebook_mode(connected = False)

    iplot(XXXXXX)

只需导入绘图库

请告诉我这是否有帮助:)

答案 1 :(得分:1)

在笔记本的开头添加行'%matplotlib inline'

请参考以下链接: https://github.com/jupyter/notebook/issues/3523

答案 2 :(得分:0)

使用 plot 而不是 iplot ... ...我花了一些时间才弄清楚。您可以将图形同时绘制到笔记本和gdrive。

答案 3 :(得分:0)

尝试使用 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")