Jupyter Lab中的plot.ly离线模式不显示图

时间:2019-01-06 17:43:52

标签: python plotly jupyter jupyter-lab

根据文档,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])

结果是单元格输出区域中有很多空白。

enter image description here

为什么这与Jupyter Lab不兼容?

11 个答案:

答案 0 :(得分:9)

尝试更改渲染器:

import plotly.io as pio
pio.renderers.default = 'iframe' # or 'notebook' or 'colab'

您可以像这样遍历列表以查看适合您的内容

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()

答案 1 :(得分:6)

不建议使用扩展名,请使用另一个:

jupyter labextension install jupyterlab-plotly

它为我工作,并且与最新版本的plotly(当前为4.9.0)/ jupyterlab没有兼容性问题

来源:https://plotly.com/python/getting-started/https://www.npmjs.com/package/@jupyterlab/plotly-extension

答案 2 :(得分:2)

可能正在发生一些事情。由于某种原因,您的笔记本“不受信任”吗?这将阻止Plotly javascript呈现下面的任何内容。

另一种可能性是您没有为Jupyter Lab安装Plotly扩展程序。与笔记本相比,在实验室中,对javascript可执行代码的限制更多,因此,程序包需要安装扩展程序才能在单元格下方显示任何内容。

寻找带有 jupyter labextension list

并安装它(如果缺少):jupyter labextension install @jupyterlab/plotly-extension

答案 3 :(得分:1)

可接受的解决方案对我不起作用:

ValueError: The extension "@jupyterlab/plotly-extension" does not yet support the current version of JupyterLab.

我要添加@eddygeek解决方案:

jupyter labextension install jupyterlab-plotly

加上:您需要重新启动Jupyter Lab。

答案 4 :(得分:0)

您忘记了import plotly,我不知道,为什么当您致电plotly.graph_objs.Scatter时没有错误

答案 5 :(得分:0)

如果您正在使用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

答案 6 :(得分:0)

遵循以下简单步骤:

  1. 安装Node.js和NPM https://www.shaileshjha.com/how-to-install-nodejs-and-npm-on-windows-10/

  2. 安装您在此处看到的所有内容 https://github.com/plotly/plotly.py#jupyterlab-support-python-35

  3. 安装您在此处看到的所有扩展 https://github.com/jupyterlab/jupyter-renderers

您应该走的很好(尤其是如果您来自Udemy课程视频讲座61)

答案 7 :(得分:0)

我遇到了同样的问题,但是当我尝试运行以下代码时,我收到了错误消息:

$ 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 '

答案 8 :(得分:0)

即使在安装后

jupyter labextension install jupyterlab-plotly

我无法在我的 jupyterlab 中获取绘图。我将 plotly 渲染器更改为 jupyterlab 并且奏效了。

import plotly.io as pio
pio.renderers.default = "jupyterlab"

答案 9 :(得分:0)

一种方法是使用 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())

答案 10 :(得分:0)

此外,如果您的 Anaconda 安装在 Windows 的根目录中,例如:C:\Anaconda\ 那么这对我有用,因为我无法运行 jupyter labextension install jupyterlab-plotly 来自我的(基础)Python。 因此,首先我在我的虚拟环境中运行它:jupyter labextension list 下一个jupyter labextension install jupyterlab-plotly 在 Virtual env 中安装和测试后, 我从 Virtual Env 下的 Scripts 文件夹中复制了 jupyter-labextension-script.py,并将其粘贴到我的主要(基本)Python 文件夹中的 Scripts 文件夹中。 现在,activate base 接下来按照这些命令:jupyter labextension list 最后jupyter labextension install jupyterlab-plotly

测试您的 Jupyterlab,您应该能够看到您的图表。