Plotly express 不在 jupyter lab 中渲染

Posted

技术标签:

【中文标题】Plotly express 不在 jupyter lab 中渲染【英文标题】:Plotly express is not rendered in jupyter lab 【发布时间】:2019-12-18 10:10:35 【问题描述】:

以下代码不会在 Jupyter 实验室中呈现:

%matplotlib widget
import plotly.express as px  
import numpy as np 
import pandas as pd

df = pd.DataFrame(np.random.randint(0,100,size=(5, 4)), columns=list('ABCD'))
px.bar(df, x='A', y='B')

我已尝试安装此处提到的所有依赖项和扩展 https://plot.ly/python/getting-started/#jupyterlab-support-python-35

还有这里的步骤 https://github.com/matplotlib/jupyter-matplotlib

没有任何效果

这是我的设置:

jupyter lab --version
1.0.2

python --version
Python 3.6.1 :: Continuum Analytics, Inc.

conda list jupyterlab
# packages in environment at C:\Users\***\Anaconda3:
#
# Name                    Version                   Build  Channel
jupyterlab                1.0.2            py36hf63ae98_0
jupyterlab_launcher       0.13.1                   py36_0
jupyterlab_server         1.0.0                      py_0

conda list nodejs
# packages in environment at C:\Users\***\Anaconda3:
#
# Name                    Version                   Build  Channel
nodejs                    0.1.1                    pypi_0    pypi

conda list plotly
# packages in environment at C:\Users\***\Anaconda3:
#
# Name                    Version                   Build  Channel
plotly                    4.1.0                    pypi_0    pypi
plotly-express            0.4.1                    pypi_0    pypi

编辑:

jupyter-labextension list
JupyterLab v1.0.2
Known labextensions:
   app dir: C:\Users\***\Anaconda3\share\jupyter\lab
        @jupyter-widgets/jupyterlab-manager v1.0.2 enabled  ok
        @jupyterlab/git v0.8.0 enabled  ok
        @jupyterlab/plotly-extension v1.0.0 enabled  ok
        jupyter-matplotlib v0.4.2 enabled  ok
        jupyterlab-chart-editor v1.2.0 enabled  ok
        jupyterlab-plotly v1.1.0 enabled  ok
        plotlywidget v1.1.0 enabled  ok

【问题讨论】:

您是否安装了 jupyterlab plotly 扩展,它适用于我的全新安装 是的,我做到了。我可以使用任何命令向您显示已安装扩展程序吗? jupyter-lab 扩展列表 谢谢,也用这些信息编辑了我的问题 【参考方案1】:

编辑:这些说明和更多内容现在在我们的官方Troubleshooting Guide!

可能是以前安装的残余或尝试安装导致问题。我建议从全新安装开始或卸载所有 Plotly 模块(来自 pip 和 conda!)和与 plotly 相关的 jlab 扩展,然后按照此处的说明进行操作:https://plot.ly/python/getting-started/

卸载模块是一个问题

conda uninstall plotly
pip uninstall plotly

然后根据上面链接的说明重新安装其中一个,但不能同时重新安装。

卸载 JupyterLab 扩展是使用

jupyter labextension uninstall @jupyterlab/plotly-extension
jupyter labextension uninstall jupyterlab-plotly 
jupyter labextension uninstall plotlywidget

【讨论】:

这是可能的 - 你能提到我应该使用 pip 和 conda 编写的命令序列来卸载所有与情节相关的模块和扩展吗? 老实说,从一个新的 conda env 或 virtualenv 开始要容易得多:) 我已经编辑了我的答案以包含一些卸载说明【参考方案2】:

按照官方 plotly.py repo https://github.com/plotly/plotly.py,为了在 JupyterLab 中正确渲染 plotly,需要通过命令安装特殊扩展

jupyter labextension install jupyterlab-plotly@4.14.3

【讨论】:

【参考方案3】:

我遇到了同样的问题,但原因不同,需要不同的解决方案。只是想把它分享给遇到同样问题的人。

我在一个尚未安装 nodejs 或 npm 的 Docker 容器中运行 jupyterlab。

我无法通过以下方式安装所需的扩展:

jupyter labextension install jupyterlab-plotly

因为它给了我这个错误:

ValueError: Please install nodejs and npm before continuing installation. nodejs may be installed using conda or directly from the nodejs website.

Conda 在容器上不可用,当通过 jupyterlab 终端(通过 pip 或 apt-get)安装 node 和 npm 时,我遇到了同样的错误,或者版本不匹配(使用 apt-get 时,我得到的 nodejs 版本是太旧了)。

以下步骤帮助我解决了问题。

在构建容器时在docker容器中安装nvm,因此在Dockerfile中: RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash 请注意版本号,您可能希望将其更改为最新的稳定版本 通过加载一些包含的初始化脚本使 nvm 命令可用: SHELL ["bash", "-lc"] RUN export NVM_DIR="$HOME/.nvm" RUN [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm RUN [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion 通过 nvm 安装特定的 nodejs 版本: RUN nvm install 14.17.0 再次注意版本号,更改为您需要的任何版本。 安装 jupyter 扩展: RUN jupyter labextension install jupyterlab-plotly

重新启动内核并快乐绘图;)

如果这对您的用例有意义,您也可以考虑安装 conda,然后通过 conda 安装 nodejs。不过,我还没有测试过它是否有效。

【讨论】:

【参考方案4】:

尝试安装 jupyterlab dash,它对我有用!

您可以通过 jupyterlab 菜单或按照这些说明进行操作。

https://github.com/plotly/jupyter-dash

看起来你也应该升级你的情节,因为情节表达现在是情节的一部分,即

import plotly.express as px

【讨论】:

我尝试过两种方式导入它:plotly_express 和 plotly.express。都失败了。查看上次编辑 我现在有破折号:jupyterlab-dash v0.1.0-alpha.3 enabled ok 关闭并重新打开 jupyterlab。问题依然存在。【参考方案5】:

对于仍在努力完成这项工作的任何人 - 这些步骤对我有用:

如果您正在运行 jupyter 实验室 - 关闭您的会话。 卸载 plotly 和所有其他相关软件包,例如 @nicolaskruchten recommends here。 使用 conda 或 pip 重新安装 plotly 和 jupyter-dash,但不要在两个包管理器之间混合使用。 再次从终端执行jupyter lab。现在您应该看到一个窗口Build recommended – jupyterlab-dash needs to be included in build。确认这一点。 成功构建后,关闭 jupyter-lab 会话并重新启动。

【讨论】:

以上是关于Plotly express 不在 jupyter lab 中渲染的主要内容,如果未能解决你的问题,请参考以下文章

plotly express 情节已经褪色

甘特图上的显示问题(Jupyter、Plotly、Python)

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

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

在 Jupyter 中使用 plotly 在离线模式下创建动画图表

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