Plotly Express 未在 jupyter lab 中呈现

Plotly express is not rendered in jupyter lab

以下代码不会在 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 dash,它对我有用!

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

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

看来你也应该升级你的 plotly,因为 plotly express 现在是 plotly 的一部分,即

import plotly.express as px

编辑:这些说明和更多内容现在都在我们的官方 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

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

jupyter labextension install jupyterlab-plotly@4.14.3

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

我 运行 jupyterlab 在 Docker 容器中,但尚未安装 nodejs 或 npm。

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

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)安装节点和 npm 时,我遇到了同样的错误,或者版本不匹配(当使用 apt-get 时,nodejs 版本我太旧了)。

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

  • 构建容器时在docker容器中安装nvm,因此在Docker文件中:
    • RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
    • 注意版本号,您可能想将其更改为最新的稳定版本
  • 通过加载一些包含的初始化脚本使 nvm 命令可用:
    • SHELL ["bash", "-lc"] <-- 仅当您的容器未使用 bash 作为 shell 时才有必要
    • 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。不过我还没有测试过它是否有效。

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

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