Jupyter Notebook 中未显示 Plotly 图表

Plotly chart not showing in Jupyter notebook

几个小时以来,我一直在努力解决这个问题。我按照 Plotly website 上的步骤进行操作,但笔记本中仍然没有显示图表。

这是我的剧情代码:

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)

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

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)  

如果您想在离线模式下工作,您需要更改 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')

输出应显示在您的 jupyter notebook 中:

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

更新时间 2020-01-07

查看新的link:https://www.npmjs.com/package/@jupyterlab/plotly-extension

更新时间 2020-07-07

https://plotly.com/python/getting-started/#jupyterlab-support-python-35

简单的解决方案:jupyter labextension install jupyterlab-plotly

安装扩展后重启 Jupyter Lab。

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

jupyter labextension install jupyterlab-plotly

可选:Jupyter 小部件扩展:

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

Source docs

here's Jupyter Lab plotly 的故障排除指南。

从 Plotly 5.0 版开始,我可以使用 Python 3.9、pip install plotly jupyterlab 和 运行 Jupyter Lab 创建一个新的 conda 环境,并在没有任何其他包的情况下渲染绘图或扩展安装。

假设您正在使用 JupyterLab,相应地 Plotly Troubleshooting

In order to use plotly in JupyterLab, you must have the extensions installed as detailed in the Getting Started guide. There are two extensions: jupyterlab-plotly for rendering figures with fig.show() and plotlywidget for the FigureWidget.

假设你已经正确安装了所有的库(确保你已经安装了 ipywidgets and nodejs)并且假设其中一个正在使用 conda,访问 conda prompt 用于正在工作的环境( “服务器”环境)。

列出实验室的扩展

jupyter labextension list

在我的例子中,我得到了

JupyterLab v2.2.9
No installed extensions

然后我需要安装扩展 jupyterlab-plotly(现在需要库 nodejs

jupyter labextension install jupyterlab-plotly@4.14.3

plotlywidget[可选]

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

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


备注

If you use JupyterLab with multiple python environments, the extensions must be installed in the "server" environment, and the plotly python library must be installed in each "processing" environment that you intend to use.

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

遇到问题的人(即使在安装扩展后)可以尝试更改渲染器。它在 Chrome.

的 JupyterLab 上对我有用

请注意,这将创建一个非纯 html 文件的 iframe 图目录。

如果使用 jupyterlab 安装 JupyterLab 扩展

jupyter labextension install jupyterlab-plotly

在py.iplot或fig.show()

之前添加这一行
import plotly.io as pio
pio.renderers.default = 'iframe'

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

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