Python plotly.offline.iplot在Jupyter Notebook/Lab中提供一个较大的空白字段作为其输出
我正试图在Jupyter笔记本中创建一个Sankey图表,我的代码基于此 我最终得到了这个,我可以运行它而不会出现任何错误:Python plotly.offline.iplot在Jupyter Notebook/Lab中提供一个较大的空白字段作为其输出,python,jupyter-notebook,plotly,jupyter,jupyter-lab,Python,Jupyter Notebook,Plotly,Jupyter,Jupyter Lab,我正试图在Jupyter笔记本中创建一个Sankey图表,我的代码基于此 我最终得到了这个,我可以运行它而不会出现任何错误: import numpy as npy import pandas as pd import plotly as ply ply.offline.init_notebook_mode(connected=True) df = pd.read_csv('C:\\Users\\a245401\\Desktop\\Test.csv',sep=';') print(df.h
import numpy as npy
import pandas as pd
import plotly as ply
ply.offline.init_notebook_mode(connected=True)
df = pd.read_csv('C:\\Users\\a245401\\Desktop\\Test.csv',sep=';')
print(df.head())
print(ply.__version__)
data_trace = dict(
type='sankey',
domain = dict(
x = [0,1],
y = [0,1]
),
orientation = "h",
valueformat = ".0f",
node = dict(
pad = 10,
thickness = 30,
line = dict(
color = "black",
width = 0.5
),
label = df['Node, Label'].dropna(axis=0, how='any'),
color = df['Color']
),
link = dict(
source = df['Source'].dropna(axis=0, how='any'),
target = df['Target'].dropna(axis=0, how='any'),
value = df['Value'].dropna(axis=0, how='any'),
)
)
print(data_trace)
layout = dict(
title = "Test",
height = 772,
width = 950,
font = dict(
size = 10
),
)
print(layout)
fig = dict(data=[data_trace], layout=layout)
ply.offline.iplot(fig, filename='Test')
csv文件如下所示:
Source;Target;Value;Color;Node, Label
0;2;2958.5;#262C46;Test 1
0;2;236.7;#262C46;Test 2
0;2;1033.4;#262C46;Test 3
0;2;58.8;#262C46;Test 4
0;2;5.2;#262C46;Test 5
0;2;9.4;#262C46;Test 6
0;2;3.4;#262C46;Test 7
它似乎运行得很好,各种输出乍一看都是正确的,但是ply.offline.iplot(图,filename='Test')
的最终输出只是显示了一个大的空白字段:
将笔记本中的所有单元格运行一次后,终端看起来是这样的:
有人能告诉我哪里出了问题吗
- 编辑:我还在plotly论坛上发布了这个问题:-
jupyter笔记本——NotebookApp.iopub\u data\u rate\u limit=1.0e10
为我帮助将笔记本更改为受信任的笔记本(这启用了Javascript并提供了在jupyter笔记本中构建图形的绘图方式)
您可以在此处找到此选项:
来自
这显示了一个数字,而这里的其他答案都不适用于我:
import plotly.graph_objs as go
fig = go.FigureWidget()
# Display an empty figure
fig
这(在新单元格中)使用条形图和折线图修改上述绘图:
# Add a scatter chart
fig.add_scatter(y=[2, 1, 4, 3])
# Add a bar chart
fig.add_bar(y=[1, 4, 3, 2])
# Add a title
fig.layout.title = 'Hello FigureWidget'
如果这不起作用,请确保您的安装是良好的,例如,如果您使用pip安装,请确保您的安装是良好的,例如,pip install--user--plotly升级
,如果这些答案对您都不起作用。试试这个
只需在管理员权限下打开的提示中执行此操作
pip install pip --upgrade
conda upgrade notebook or pip install notebook --upgrade
conda install -c conda-forge ipywidgets or pip install ipywidgets
您需要拥有最新版本的jupyter笔记本
和ipywidgets
我可以通过jupyter笔记本
服务器(无任何附加选项)获得正确的显示,但会得到一个空白块
使用jupyter实验室的服务器。相关版本信息:
$jupyter实验室--版本
0.35.5
$jupyter笔记本--版本
5.7.8
$python-c“打印导入;打印(打印版本)”
3.10.0
因此,对于使用JupyterLab的用户,要在JupyterLab中正确显示脱机
图形,我们需要使用以下命令安装plotly扩展插件
(以下摘自a):
$jupyter-labextension安装@jupyterlab/plotly-extension
$jupyter labextension列表
$jupyter实验室建造
使用Google Colab时,请包含以下代码片段-
import plotly.io as pio
pio.renderers.default = 'colab'
或使用整体导入报表作为-
import plotly.offline as py
py.init_notebook_mode(connected=True)
import plotly.graph_objs as go
import plotly.io as pio
pio.renderers.default = 'colab'
from plotly.offline import init_notebook_mode, iplot
这会将渲染设置为Colab样式,并显示打印
希望这有帮助。我尝试了这里建议的所有解决方案,但没有一个对我有效。解决问题的方法是添加:
import plotly.io as pio
pio.renderers.default='notebook'
也使用了fig.show(“笔记本”)
,而不是像建议的那样简单地使用fig.show()。我自己也遇到了类似的问题,有一个sunburst图。空白图是由于无效数据造成的。我本来希望在运行时得到一个错误,但在一些罕见的情况下,似乎不会出现错误,而是显示一个空白的绘图
因此,请检查您的数据有效性,或使用plotly doc上提供的虚拟数据执行测试,以测试问题是否来自数据或plotly/notebook界面。我认为您正在使用notebook。也许您需要%matplotlib像这样内联,但是对于plotly PackageDirect输出到文件,但是如果您创建I/O实体并接收输出,则进程在哪里,你必须进行必要的路由和寻址。你能检查你启动笔记本的终端是否有任何错误消息或警告吗?@elphz我在问题中添加了一个屏幕截图,在运行笔记本中的所有单元一次后,终端看起来是什么样子。嗯,不太有用。您的代码为我生成了一个图像,但我过去在Jupyter中的plotly offline中也遇到过类似的问题-有时当/为什么plots无法显示时,会出现令人惊讶的不一致。从提高数据速率限制开始,也许值得一试-jupyter笔记本--NotebookApp.iopub\u data\u rate\u limit=1.0e10
谢谢,这很有效。虽然我想知道为什么,因为它以前在同一个笔记本上工作,但它是“不可信的”。我在jupyter实验室看到了这个问题。当我切换到笔记本应用程序时,这个建议对我起了作用。有没有办法通过jupyter实验室设置此参数?@MichaelSzczepaniak您找到jupyter实验室设置此参数的方法了吗?