Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

plotly.offline.iplot gives a large blank field as its output in Jupyter Notebook/Lab

I am trying to create a Sankey chart in a Jupyter notebook, basing my code on the first example shown here.

I ended up with this, which I can run without getting any errors:

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

With the csv-file looking like this:

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 

It seems to run fine, with the various outputs looking right at a first glance, but the final output from ply.offline.iplot(fig, filename='Test') just shows a large blank field: enter image description here The terminal looks like this after having run all the cells in the notebook once: enter image description here

Can someone please point me to where I am going wrong here?

  • edit: I also posted this question on the plotly forums: https://community.plot.ly/t/no-output-from-plotly-offline-iplot/8086 -
like image 804
eirikdaude Avatar asked Feb 01 '18 10:02

eirikdaude


People also ask

Can plotly be used offline?

Plotly allows you to generate graphs offline and save them in local machine. The plotly. offline. plot() function creates a standalone HTML that is saved locally and opened inside your web browser.

What is Iplot plotly?

Plotly is a free and open-source graphing library for Python. We recommend you read our Getting Started guide for the latest installation or upgrade instructions, then move on to our Plotly Fundamentals tutorials or dive straight in to some Basic Charts tutorials.

Does plotly work in Google Colab?

Plotly is now more powerful than ever with a new open source library named JupyterDash. JupyterDash is developed on top of the Dash framework to make it completely suitable for notebook environments such as Colab.


2 Answers

I have had similar issues with plotly offline in Jupyter in the past - sometimes it's surprisingly inconsistent when/why the plots fail to appear. It may be worth a try starting with an increased data rate limit.

jupyter notebook --NotebookApp.iopub_data_rate_limit=1.0e10

like image 87
elz Avatar answered Sep 22 '22 21:09

elz


I tried all the solutions suggested here, but none of them worked for me. What solved the issue was adding:

import plotly.io as pio pio.renderers.default='notebook' 

and also using fig.show("notebook") rather than simply fig.show(), as suggested here.

like image 39
soungalo Avatar answered Sep 20 '22 21:09

soungalo