plot.ly jupyter lab 中的离线模式不显示绘图

plot.ly offline mode in jupyter lab not displaying plots

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

单元格输出区域的结果space非常空。

为什么这不适用于 Jupyter Lab?

可能会发生一些事情。出于某种原因,您的笔记本“不可信”吗?这将阻止 Plotly javascript 渲染下面的任何内容。

另一种可能是您没有为 Jupyter Lab 安装 Plotly 扩展。在 Lab 中,与 Notebooks 相比,javascript 可以执行的内容有更多限制,因此包需要安装扩展才能显示单元格下方的任何内容。

寻找 plotly-extension with jupyter labextension list

并在缺少时安装它:jupyter labextension install jupyterlab-plotly

如果您使用的是 Jupyter Lab(不是 Jupyter Notebook),则需要为 Jupyter Lab 安装 "Jupyter Renderers" 扩展。 https://github.com/jupyterlab/jupyter-renderers

查看类似主题: - Using plot.ly in jupyterlab - graphics does not show -

Plotly-extension 已弃用,请使用另一个:

jupyter labextension install jupyterlab-plotly

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

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

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

$ 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,这意味着它应该可以工作。

我找到了解决问题的方法 post >>

我按照 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 '

尝试更改渲染器:

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

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

另外,如果你的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,并将其粘贴到我的主(基础)Python 文件夹中的 Scripts 文件夹中。 现在,activate base 接下来执行以下命令:jupyter labextension list 最后jupyter labextension install jupyterlab-plotly

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