plotly.offline.iplot выдает большое пустое поле в виде выходных данных в Jupyter Notebook/Lab
Я пытаюсь создать диаграмму Санки в ноутбуке Jupyter, основывая свой код на первом примере, показанном здесь.
Я закончил с этим, и я могу работать без ошибок:
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(fig, filename='Test')
просто показывает большое пустое поле: Терминал выглядит как это после того, как вы запустили все ячейки в записной книжке один раз:
Может кто-нибудь, пожалуйста, назовите меня туда, где я ошибаюсь?
Ответы
Ответ 1
У меня были аналогичные проблемы с сюжетным отключением в Jupyter в прошлом - иногда это удивительно противоречиво, когда/почему графики не появляются. Возможно, стоит попробовать начать с повышенного ограничения скорости передачи данных.
jupyter notebook --NotebookApp.iopub_data_rate_limit=1.0e10
Ответ 2
Для меня помогла поменять блокнот на Trusted
(это включило Javascript и дало сюжетный способ встраивания графика в блокнот jupyter.).
Этот вариант вы можете найти здесь:
Ответ 3
Из быстрого старта в README
Это показывает число, в то время как ни один из других ответов здесь не работал для меня:
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 install --user --upgrade plotly
, например, pip install --user --upgrade plotly
если вы установили с помощью pip
Ответ 4
Если ни один из этих ответов не сработал для вас. Попробуй это
просто сделайте это в приглашении conda, открытом с правами администратора
pip install pip --upgrade
conda upgrade notebook or pip install notebook --upgrade
conda install -c conda-forge ipywidgets or pip install ipywidgets
Вы должны иметь последние версии jupyter notebook
ipywidgets
и ipywidgets
.
Ответ 5
Я могу получить правильное отображение на jupyter notebook
(без каких-либо дополнительных опций), но получить пустой блок с сервером jupyter lab
. Информация о соответствующей версии:
$ jupyter lab --version
0.35.5
$ jupyter notebook --version
5.7.8
$ python -c "import plotly; print(plotly.__version__)"
3.10.0
Поэтому для тех, кто использует JupyterLab, для правильного отображения автономных plotly
диаграмм в JupyterLab нам необходимо установить plotly-extension
с помощью следующих команд (plotly-extension
приведена из соответствующего ответа):
$ jupyter labextension install @jupyterlab/plotly-extension
$ jupyter labextension list
$ jupyter lab build