绘图图表未显示在 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()
渲染图形 和plotlywidget
为FigureWidget
。
假设您已正确安装所有库(确保已安装 ipywidgets
和 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
现在您可以可视化您的绘图了。
注意
如果您将 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 笔记本中的主要内容,如果未能解决你的问题,请参考以下文章
matplotlib:figimage 未显示在 Jupyter 笔记本中