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

Posted

技术标签:

【中文标题】绘图图表未显示在 Jupyter 笔记本中【英文标题】:Plotly chart not showing in Jupyter notebook 【发布时间】:2019-03-17 04:49:41 【问题描述】:

我已经尝试解决这个问题好几个小时了。我按照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)  

【问题讨论】:

您不能以这种方式创建多个traces,在这种情况下 for 循环不起作用。如果您没有那么多state,请尝试为每个state 创建每个trace。正如here 所示。并将每个 y 更改为州名。然后创建跟踪列表并将其命名为data,如示例。 @Oysiyl 谢谢,但这实际上并没有回答我的问题。该图正在显示,但在单独的选项卡中。我想做的是能够在我的笔记本中而不是在单独的选项卡中看到它。 【参考方案1】:

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

【讨论】:

【参考方案2】:

如果你想使用 Jupyter lab,你必须安装 plotly jupyterlab 扩展:https://github.com/jupyterlab/jupyter-renderers/tree/master/packages/plotly-extension。

2020-01-07 更新

查看新链接: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。

【讨论】:

链接已失效。 新链接已弃用 简单的解决方案就像一个魅力。谢谢!【参考方案3】:

要在 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 5.0 版开始,我可以使用 Python 3.9 和 pip install plotly jupyterlab 创建一个新的 conda 环境,并运行 Jupyter Lab 并渲染绘图,而无需安装任何其他包或扩展。

【讨论】:

您可以通过运行jupyter labextension install jupyterlab-plotly来完全删除版本部分以获取最新版本 安装可选的(有第一个)使可视化崩溃,我必须在卸载两者后安装第一个。 这似乎是不正确的“从 5.0 版开始,您不再需要安装任何扩展。”。不是很精明,但我安装了 5.1 并在安装扩展程序并重新启动 jupyter 之前遇到了问题。 我刚刚确认我不需要安装任何扩展,并且 Plotly 5.2.1 在 Mac 上使用 JupyterLab 3.1.7 对我来说很好。【参考方案4】:

假设您使用的是 JupyterLab,对应于Plotly Troubleshooting

为了在 JupyterLab 中使用 plotly,您必须拥有扩展程序 已安装,详见Getting Started guide。那里有两个 扩展:jupyterlab-plotly 用于使用fig.show() 渲染图形 和 plotlywidgetFigureWidget

假设您已正确安装所有库(确保已安装 ipywidgetsnodejs)并假设其中一个正在使用 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

现在您可以可视化您的绘图了。


注意

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

【讨论】:

【参考方案5】:

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

【讨论】:

这对我有用(安装扩展 + 重新启动内核失败 + 停止并重新启动 jupyter)。谢谢你。看起来对另一个答案的评论可能不正确:“从 5.0 版开始,您不再需要安装任何扩展”【参考方案6】:

遇到问题的人(即使在安装扩展程序之后)可能会尝试更改渲染器。它在 Chrome 上的 JupyterLab 上对我有用。

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

如果使用 jupyterlab 安装 JupyterLab 扩展

jupyter labextension install jupyterlab-plotly

在 py.iplot 或 fig.show() 之前添加这一行

import plotly.io as pio
pio.renderers.default = 'iframe'

【讨论】:

以上是关于绘图图表未显示在 Jupyter 笔记本中的主要内容,如果未能解决你的问题,请参考以下文章

jupyter-lab 中未显示动画绘图表达图

防止情节在 jupyter notebook 中显示

matplotlib:figimage 未显示在 Jupyter 笔记本中

在 Sphinx 文档中嵌入绘图图

使用 Altair 和 Jupyter 绘图时如何在轴标签中显示希腊字母?

Jupyter Notebook Markdown 未显示在 GitHub 中