web-dev-qa-db-fra.com

plotly.offline.iplot donne un grand champ vide en sortie - pourquoi?

J'essaie de créer un graphique Sankey dans un cahier Jupyter, en me basant sur le code le premier exemple présenté ici .

Je me suis retrouvé avec ceci, que je peux exécuter sans commettre d'erreur:

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')

Avec le fichier csv ressemblant à ceci:

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

Il semble fonctionner correctement, avec les différentes sorties regardant tout de suite, mais la sortie finale de ply.offline.iplot(fig, filename='Test') ne montre qu'un grand champ vide:  enter image description here Le terminal ressemble à ceci après avoir exécuté toutes les cellules du cahier une fois:  enter image description here

Est-ce que quelqu'un peut m'indiquer où je me trompe ici?

8
eirikdaude

J'ai eu des problèmes similaires avec plotly offline dans Jupyter dans le passé - il est parfois étonnamment incohérent lorsque/pourquoi les parcelles ne s'affichent pas. Il peut être intéressant d'essayer de commencer avec une limite de débit de données accrue.

jupyter notebook --NotebookApp.iopub_data_rate_limit=1.0e10

12
elphz

Pour moi, j'ai aidé à changer de bloc-notes en Trusted (ceci a permis à Javascript de créer un graphique dans le bloc-notes jupyter.).

Cette option, vous pouvez trouver ici:

 In upper right side of notebook

2
Oysiyl