未在Jupyter笔记本中显示的图表

Liz*_*Liz 8 python plotly jupyter-notebook

我已经尝试解决这个问题了好几个小时了。我按照Plotly网站上的步骤进行操作,但笔记本中仍未显示该图表。

这是我的情节代码:

colorway = ['#f3cec9', '#e7a4b6', '#cd7eaf', '#a262a9', '#6f4d96', '#3d3b72', '#182844']

data = [
    go.Scatter(
        x = immigration.columns,
        y = immigration.loc[state],
                   name=state) for state in immigration.index]

layout = go.Layout(
    title='Immigration',
    yaxis=dict(title='Immigration %'),
    xaxis=dict(title='Years'),
    colorway=colorway,
    font=dict(family='Courier New, monospace', size=18, color='#7f7f7f')
)

fig = go.Figure(data=data, layout=layout)
iplot(fig)
Run Code Online (Sandbox Code Playgroud)

这就是我导入到笔记本中的所有内容:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import plotly.plotly as py
import plotly.graph_objs as go
from plotly.offline import init_notebook_mode, iplot

init_notebook_mode(connected=True)  
Run Code Online (Sandbox Code Playgroud)

Gor*_*kem 30

那些遇到麻烦的人(即使在安装扩展之后)可以尝试更改渲染器。它在 Chrome 上的 JupyterLab 上对我有用。

请注意,这将创建一个 iframe 图目录而不是纯 html 文件。

如果使用 jupyterlab 安装 JupyterLab 扩展

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

在 py.iplot 或 Fig.show() 之前添加此行

import plotly.io as pio
pio.renderers.default = 'iframe'
Run Code Online (Sandbox Code Playgroud)

  • 添加 `pio.renderers.default = 'iframe'` 对我有用,无需重新启动 Jupyter Lab (4认同)

jef*_*ale 23

要在 Jupyter Lab 中使用低于 5.0 的 plotly 版本,请确保您已安装 ipywidgets 和 plotly,然后运行以下命令:

jupyter labextension install jupyterlab-plotly

可选:Jupyter 小部件扩展:

jupyter labextension install @jupyter-widgets/jupyterlab-manager plotlywidget

源文档

这里的故障排除指南plotly与Jupyter实验室。

从 Plotly 5.0 版开始,我可以使用 Python 3.9 创建一个新的 conda 环境,然后pip install plotly jupyterlab运行 Jupyter Lab 并渲染图,而无需安装任何其他包或扩展。


nay*_*asu 12

作为 Plotly 的新手,我也遇到了同样的问题。我尝试了上述所有方法,但仍然得到空白图表。事实证明,仅安装 jupyterlab 扩展就足够了,但您需要关闭并重新启动 jupyterlab 本身。仅重新启动内核没有帮助。


Dmi*_*sil 11

init_notebook_mode如果要在离线模式下工作,则需要更改呼叫。

这样:

# Import the necessaries libraries
import plotly.offline as pyo
import plotly.graph_objs as go
# Set notebook mode to work in offline
pyo.init_notebook_mode()
# Create traces
trace0 = go.Scatter(
    x=[1, 2, 3, 4],
    y=[10, 15, 13, 17]
)
trace1 = go.Scatter(
    x=[1, 2, 3, 4],
    y=[16, 5, 11, 9]
)
# Fill out data with our traces
data = [trace0, trace1]
# Plot it and save as basic-line.html
pyo.iplot(data, filename = 'basic-line')
Run Code Online (Sandbox Code Playgroud)

输出应显示在您的jupyter笔记本中:

我的例子


use*_*351 11

I\xe2\x80\x99m通过我的 DataSpell IDEplotly=5.9.0运行jupyter-notebook=6.5.2。尽管目前已于 2023 年 4 月 20 日正常运行,但根据这篇文章-> ,许多在Jupyter Notebook中渲染 Plotly 图形的历史解决方案已被弃用(请参阅下面的评论)。

\n

对我有用的最终解决方案:

\n
import plotly.graph_objs as go\nimport plotly.io as pio\npio.renderers.default = \xe2\x80\x9cplotly_mimetype+notebook\xe2\x80\x9d\n\nfig = ...\n\nfig.show()\n
Run Code Online (Sandbox Code Playgroud)\n

(如果这不起作用,我会尝试的下一个替代方案是:

\n
pio.renderers.default = "plotly_mimetype+notebook_connected\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n
\n

一个有效的中间解决方案,但我对实施并不感到非常兴奋,是将图形本地保存在 HTML 文件中,然后使用以下命令将其导入回笔记本中:

\n
# Save the figure locally\nfig.write_html("my_visualisation.html")\n\n# Show the figure\nfrom IPython.display import HTML\nHTML(filename="my_visualisation.html")\n
Run Code Online (Sandbox Code Playgroud)\n

2021 年 Plotly 维护者在我上面提到的帖子中的最初建议是使用:

\n
import plotly.io as pio\npio.renderers.default = "notebook_connected"\n\nfig = ...\n\nfig.show()\n
Run Code Online (Sandbox Code Playgroud)\n

仅此而已,因为其他解决方案现在是内置的,并且因为 \xe2\x80\x9cour 当前该库的开发理念:我们正在尝试将所有内容贯穿其中,fig.show并且我们已经从文档中删除了所有提及的内容,plotly.offline因为线上/线下的区别历来让人们感到困惑和害怕:)\xe2\x80\x9d。

\n

例如,

\n
import plotly.offline as pyo\npyo.init_notebook_mode()\n
Run Code Online (Sandbox Code Playgroud)\n

或者

\n
pyo.init_notebook_mode(connected=True)\n
Run Code Online (Sandbox Code Playgroud)\n

不再需要。然而,我引用的 2021 年建议对我不起作用,同一页面上的其他评论也不起作用:pio.renderers.default = "notebook\xe2\x80\x9d

\n


MNA*_*MNA 8

如果您在 Jupyter Notebook 而不是 Jupyter Lab 上遇到此问题,您可以尝试以下命令

import plotly.io as pio
pio.renderers.default='notebook'
Run Code Online (Sandbox Code Playgroud)

这对我有用,无需重新启动


Man*_*nas 7

如果其他答案不适合您,请检查您的浏览器是否启用了 WebGL。您可以按照以下步骤在 Chrome 中检查并启用 WebGL。

  1. 在地址栏中输入 chrome://flags/ 并按 ENTER
  2. 使用 WebGL 关键字启用所有选项
  3. 单击立即重新启动。Google Chrome 将重新启动,并且将应用您的新设置,而无需关闭其他选项卡


Ham*_*ang 5

如果要使用Jupyter实验室,则必须安装plotly jupyterlab扩展:https : //github.com/jupyterlab/jupyter-renderers/tree/master/packages/plotly-extension

  • 对于 1/9/2024,这不起作用:(已弃用)使用 jupyter labextension install 命令安装扩展现已弃用,并将在 JupyterLab 的未来主要版本中删除。用户应该使用 pip 和 conda 等包管理器来管理预构建的扩展,并鼓励扩展作者将其扩展作为预构建的包分发 (2认同)

Gon*_*ica 5

假设您正在使用 JupyterLab,根据Plotly 故障排除

为了在 JupyterLab 中使用 plotly,您必须 按照入门指南中的详细说明安装扩展。有两个扩展:渲染数字与 和的。jupyterlab-plotlyfig.show()plotlywidgetFigureWidget

假设您已正确安装所有库(确保已安装ipywidgetsnodejs已安装)并假设其中一个正在使用conda,则conda prompt对正在运行的环境(“服务器”环境)的访问。

列出实验室的扩展名

jupyter labextension list
Run Code Online (Sandbox Code Playgroud)

就我而言,我得到了

JupyterLab v2.2.9
No installed extensions
Run Code Online (Sandbox Code Playgroud)

然后我需要安装扩展jupyterlab-plotlynodejs现在需要库)

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

plotlywidget[可选]

jupyter labextension install @jupyter-widgets/jupyterlab-manager plotlywidget@4.14.1
Run Code Online (Sandbox Code Playgroud)

现在您将能够可视化您的绘图。


笔记

如果您在多个 python 环境中使用 JupyterLab,则扩展必须安装在“服务器”环境中,并且 plotly python 库必须安装在您打算使用的每个“处理”环境中。


Rez*_*arz 5

我一直在 Jupyter/JupyterLab 中使用这个简单的配置:

import plotly.io as pio
pio.renderers.default = 'iframe'
Run Code Online (Sandbox Code Playgroud)

它对我来说一直正常运行。唯一的不便之处在于,在大量可视化的情况下,可能需要几秒钟的时间。