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离线模式不显示绘图的主要内容,如果未能解决你的问题,请参考以下文章

如何获取在 plot.ly JS 的图例中单击了哪个跟踪

如何在离线模式下运行 Jupyter Dash 应用程序

Python:如何使用plotly制作阴影区域或交替背景颜色?

python 来自https://plot.ly/matplotlib/plot/

plot.ly 悬停框大小属性

使用 R 和 plot.ly - 如何编写脚本将输出保存为网页