Plotly 在 jupyter lab 中给出一个空字段作为输出

Posted

技术标签:

【中文标题】Plotly 在 jupyter lab 中给出一个空字段作为输出【英文标题】:Plotly gives an empty field as output in jupyter lab 【发布时间】:2019-07-22 23:37:25 【问题描述】:

我在 jupyter 实验室使用 plotly,但我得到一个空白输出。我遇到了与此处描述的完全相同的问题:plotly.offline.iplot gives a large blank field as its output - why?

我尝试了他们在答案中提出的建议,但没有奏效。

这是我正在使用的代码:

import pandas as pd
import numpy as np
%matplotlib inline

from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
init_notebook_mode(connected=True)
cf.go_offline()

df = pd.DataFrame(np.random.randn(100,4), columns='A B C D'.split())
df2 = pd.DataFrame('category':['A','B','C'], 'values':[32,43,50])

df.iplot(kind='scatter', x='A',y='B', mode='markers', size=10)

其中一个建议是将笔记本更改为“受信任”。你知道我在 jupyter 实验室怎么做吗?

【问题讨论】:

观察:代码在 jupyter notebook 中运行良好。该问题仅发生在 jupyter 实验室中。 这里的观察。问题与JupyterLab的labextension有关。 对于那些对 jupyter notebook 有同样问题的人,一个对我有用的解决方案是调用fig.show('notebook')。此处建议使用此解决方案:plotly.com/python/troubleshooting/#import-problems 对于遇到类似问题的人来说,一个解决方案可能是尝试另一种浏览器。我遇到了类似的问题并试图解决它只是发现我的标准浏览器是我的问题的根源(不知道为什么)但切换到另一个浏览器解决了我的问题。 【参考方案1】:

为了在 JupyterLab 中正确显示 plotly 离线图表,

第 1 步:我们需要先为 JupyterLab 安装 plotly-extension

$ jupyter labextension install @jupyterlab/plotly-extension

(请注意,上述步骤需要Node.js >= 4,如果您的操作系统上没有Node.js,请从其Official Website 安装它。)

第二步:检查@jupyterlab/plotly-extension安装后的状态:

$ jupyter labextension list 
JupyterLab v0.35.5
Known labextensions:
   app dir: /Users/yourname/anaconda3/share/jupyter/lab
        @jupyterlab/plotly-extension v0.18.2  enabled  OK

Build recommended, please run `jupyter lab build`:
    @jupyterlab/plotly-extension needs to be included in build

第 3 步:按照建议,使用新安装的 labextensions 重新构建 JupyterLab:

$ jupyter lab build

在这些之后,重新启动 JupyterLab,并在每个笔记本会话开始时设置 plotly.offline.init_notebook_mode(connected=True),然后 plotly.offline.iplot 应该正确地显示笔记本中的绘图。

【讨论】:

这是我使用new extension 的快速修复,因为prior 已被弃用。谢谢@YaOzl! 这个包 (@jupyterlab/plotly-extension) 已被弃用。请使用 Plotly 支持的 jupyterlab-plotly (npmjs.com/package/jupyterlab-plotly)。【参考方案2】:

@YaOzI 的回答部分正确,但 @jupyterlab/plotly-extension 已被弃用,官方 plotly 团队不支持,您可以阅读 here。

这可能会给您以下错误:

ValueError: The extension "@jupyterlab/plotly-extension" does not yet support the current version of JupyterLab.


Conflicting Dependencies:
JupyterLab                        Extension      Package
>=2.2.1 <2.3.0                    >=1.3.0 <2.0.0 @jupyterlab/rendermime-interfaces
See the log file for details:  /tmp/jupyterlab-debug-a3i3t9j4.log

&gt;&gt;&gt; TL;DR:

按照官方建议,这对我有用(确保您的内核已关闭,否则您将需要运行 jupyter lab build):

jupyter labextension install jupyterlab-plotly

并且(只是为了确保它有效):

jupyter labextension list

可能会给你这样的东西:

JupyterLab v2.2.9
Known labextensions:
   app dir: /home/user/anaconda3/envs/your-py-env/share/jupyter/lab
        jupyterlab-dash v0.3.0  enabled  OK
        jupyterlab-plotly v4.14.1  enabled  OK

【讨论】:

一切都很好,那是我的错误。我会删除我的评论。 该解决方案对我有用! Jupyter lab build 需要 nodejs >= 10.0.0,所以我们应该确保为我们的环境安装了nodejs【参考方案3】:

Jupyter 实验室的安装扩展已更改为 version &gt; 3.0

查看 make plotly 在 Jupyter 实验室中的工作原理。在official documentation查看需要安装的包

【讨论】:

以上是关于Plotly 在 jupyter lab 中给出一个空字段作为输出的主要内容,如果未能解决你的问题,请参考以下文章

Plotly Table 在 Python 中的 Jupyter Lab 中不显示?

Tensorflow 示例在 colab 上运行良好,但在 jupyter lab 上运行时给出了 nan

基于Jupyter Lab的Dash应用开发环境部署实践及问题解决

基于Jupyter Lab的Dash应用开发环境部署实践及问题解决

在 jupyter 中 [每隔几秒] 更新 plotly 图形

jupyter笔记本中的Plotly数据占用了大量内存