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

cls*_*udt 3 python plotly jupyter jupyter-lab

根据文档,在Jupyter中使用plot.ly的脱机模式应该在调用后工作:

from plotly.offline import download_plotlyjs, init_notebook_mode, iplot
init_notebook_mode(connected=True)
Run Code Online (Sandbox Code Playgroud)

现在,我尝试显示以下图表:

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])
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明

为什么这不适用于Jupyter Lab?

Mak*_*vel 12

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

jupyter labextension install jupyterlab-plotly
Run Code Online (Sandbox Code Playgroud)

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

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


小智 11

尝试更改渲染器:

import plotly.io as pio
pio.renderers.default = 'iframe' # or 'notebook' or 'colab' or 'jupyterlab'
Run Code Online (Sandbox Code Playgroud)

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

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()
Run Code Online (Sandbox Code Playgroud)


Luc*_*and 10

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

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

寻找与 jupyter labextension list

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

  • 根据他们的[“入门”指南](https://plotly.com/python/getting-started/#jupyterlab-support-python-35),现在已由“jupyter labextension install jupyterlab-plotly”取代。 (17认同)
  • 这是缺少的扩展名,文档中未提及。谢谢。 (3认同)
  • @eddygeek我也这么认为,我认为你需要在安装后重新启动Jupiter Lab才能使更改生效。 (2认同)

Dip*_*ick 7

一种方法是使用 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())
Run Code Online (Sandbox Code Playgroud)