jupyter实验室中的plot.ly离线模式不显示绘图
Posted
技术标签:
【中文标题】jupyter实验室中的plot.ly离线模式不显示绘图【英文标题】:plot.ly offline mode in jupyter lab not displaying plots 【发布时间】:2019-06-01 12:27:37 【问题描述】:根据文档,Jupyter 中的offline mode with plot.ly 在调用后应该可以工作:
from plotly.offline import download_plotlyjs, init_notebook_mode, iplot
init_notebook_mode(connected=True)
现在我正在尝试展示以下情节:
trace0 = plotly.graph_objs.Scatter(
x=[1, 2, 3, 4],
y=[10, 15, 13, 17]
)
trace1 = plotly.graph_objs.Scatter(
x=[1, 2, 3, 4],
y=[16, 5, 11, 9]
)
iplot([trace0, trace1])
结果是单元格输出区域有很多空白空间。
为什么这不适用于 Jupyter Lab?
【问题讨论】:
【参考方案1】:可能会发生一些事情。出于某种原因,您的笔记本电脑“不受信任”吗?这将阻止 Plotly javascript 呈现下面的任何内容。
另一种可能是您没有为 Jupyter Lab 安装 Plotly 扩展。在 Lab 中,与 Notebooks 相比,javascript 可以执行的限制更多,因此包需要安装扩展才能在单元格下方显示任何内容。
寻找情节扩展
jupyter labextension list
如果缺少,请安装它:jupyter labextension install jupyterlab-plotly
【讨论】:
这是缺少的扩展,文档中没有提到。谢谢。 现在被jupyter labextension install jupyterlab-plotly
取代,就像他们的 'Getting started' guide 一样。
@eddygeek 我也这么认为,而且我认为您需要在安装 Jupiter 实验室后重新启动它才能使更改生效。
一切都失败了,我不得不转回 Jupyter Notebook。再见实验室【参考方案2】:
尝试更改渲染器:
import plotly.io as pio
pio.renderers.default = 'iframe' # or 'notebook' or 'colab' or 'jupyterlab'
您可以像这样遍历列表以查看适合您的内容
import pandas as pd
import plotly.express as px
import plotly.io as pio
for text in pio.renderers:
print(text)
pio.renderers.default = text
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species")
fig.show()
【讨论】:
这对我有帮助。谢谢。对我来说,使用“colab”或“sphinx_gallery”效果最好! :) 这对我有用jupyterlab = "^3.1.12"
【参考方案3】:
情节扩展已被弃用,使用另一个:
jupyter labextension install jupyterlab-plotly
它对我有用,并且与最新版本的 plotly(当前为 4.9.0)/jupyterlab 没有兼容性问题
来源:https://plotly.com/python/getting-started/,https://www.npmjs.com/package/@jupyterlab/plotly-extension
【讨论】:
【参考方案4】:如果您使用的是 Jupyter Lab(不是 Jupyter Notebook),则需要为 Jupyter Lab 安装“Jupyter Renderers”扩展。 https://github.com/jupyterlab/jupyter-renderers
查看类似的主题: - Using plot.ly in jupyterlab - graphics does not show - plotly basic example shows no plot in jupyter lab
【讨论】:
【参考方案5】:一种方法是使用 html 来帮助 JupyterLab 显示图形。一个例子是:
import plotly.express as px
from IPython.display import HTML
df = px.data.tips()
fig = px.scatter(df, x='total_bill', y='tip', opacity=0.65,
trendline='ols', trendline_color_override='darkblue')
HTML(fig.to_html())
【讨论】:
【参考方案6】:我遇到了同样的问题,但是当我尝试运行以下代码时,我收到了一个错误:
$ jupyter labextension install jupyterlab-plotly@4.10.0
An error occured.
ValueError: Please install nodejs >=10.0.0 before continuing. nodejs may be
installed using conda or directly from the nodejs website.
但是我运行了“node -v
”,而我的版本是v6.13.1
,这意味着它应该可以工作。
我通过这篇文章找到了解决问题的方法>>Conda not recognizing that I have node installed?
我按照https://anaconda.org/conda-forge/nodejs 中的建议安装了,效果很好。
我运行了以下所有内容:
conda install -c conda-forge nodejs
conda install -c conda-forge/label/gcc7 nodejs
conda install -c conda-forge/label/cf201901 nodejs
conda install -c conda-forge/label/cf202003 nodejs '
【讨论】:
您不需要运行您列出的所有命令。只有conda install -c conda-forge nodejs
就足够了。【参考方案7】:
另外,如果你的 Anaconda 安装在 Windows 的根目录下,例如:C:\Anaconda\
然后这对我有用,因为我无法运行
jupyter labextension install jupyterlab-plotly
来自我的(基础)Python。
因此,首先我在我的虚拟环境中运行它:jupyter labextension list
下一个jupyter labextension install jupyterlab-plotly
在虚拟环境中安装和测试后,
我从 Virtual Env 下的 Scripts 文件夹中复制了 jupyter-labextension-script.py
,并将其粘贴到我的主(Base)Python 文件夹中的 Scripts 文件夹中。
现在,activate base
接下来遵循以下命令:jupyter labextension list
最后jupyter labextension install jupyterlab-plotly
测试您的 Jupyterlab,您应该能够看到您的图表。
【讨论】:
以上是关于jupyter实验室中的plot.ly离线模式不显示绘图的主要内容,如果未能解决你的问题,请参考以下文章
Python:如何使用plotly制作阴影区域或交替背景颜色?