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') просто показывает большое пустое поле: enter image description here Терминал выглядит как это после того, как вы запустили все ячейки в записной книжке один раз: enter image description here

Может кто-нибудь, пожалуйста, назовите меня туда, где я ошибаюсь?

Ответы

Ответ 1

У меня были аналогичные проблемы с сюжетным отключением в Jupyter в прошлом - иногда это удивительно противоречиво, когда/почему графики не появляются. Возможно, стоит попробовать начать с повышенного ограничения скорости передачи данных.

jupyter notebook --NotebookApp.iopub_data_rate_limit=1.0e10

Ответ 2

Для меня помогла поменять блокнот на Trusted (это включило Javascript и дало сюжетный способ встраивания графика в блокнот jupyter.).

Этот вариант вы можете найти здесь:

In upper right side of notebook

Ответ 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