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 中渲染的主要内容,如果未能解决你的问题,请参考以下文章
甘特图上的显示问题(Jupyter、Plotly、Python)
在 jupyter 中 [每隔几秒] 更新 plotly 图形
Plotly 在 jupyter lab 中给出一个空字段作为输出