I came across this discussion (a year ago): https://github.com/bokeh/bokeh/issues/2392
I also saw a white screen without any errors. And then I tried to take a small subset of 2 columns and tried the following:
Since pandas just gets a bunch of rows with empty data, I tried dropna .. this led to no data at all. So instead, I just pointed out the lines that should go into df (hence the line df = df.head(n=19) )
import pandas as pd from bokeh.plotting import figure, output_file, show df = pd.read_excel(path,sheetname,parse_cols="A:B") df = df.head(n=19) print(df) rtngs = ['iAAA','iAA+','iAA','iAA-','iA+','iA','iA-','iBBB+','iBBB','iBBB-','iBB+','iBB','iBB-','iB+','iB','iB-','NR','iCCC+'] x= df['Score'] output_file("line.html") p = figure(plot_width=400, plot_height=400, x_range=(0,100),y_range=rtngs)
DF:
Rating Score 0 iAAA 64.0 1 iAA+ 33.0 2 iAA 7.0 3 iAA- 28.0 4 iA+ 36.0 5 iA 62.0 6 iA- 99.0 7 iBBB+ 10.0 8 iBBB 93.0 9 iBBB- 91.0 10 iBB+ 79.0 11 iBB 19.0 12 iBB- 95.0 13 iB+ 26.0 14 iB 9.0 15 iB- 26.0 16 NR 49.0 17 iCCC+ 51.0 18 iAAA 18.0
The above shows me the output to notepad, but still throws: ValueError: Out of range float values are not JSON compliant
And also it does not (therefore?) Also create an output file. How do I get rid of this error for this small subset? Is this related to NaN values? Does this also solve the white screen of death problem for a larger dataset?
Thanks vm for watching!
If you want to see the whole error:
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-12-4fa6b88aa415> in <module>() 16 # show the results 17 #output_notebook() ---> 18 show(p) C:\Users\x\AppData\Local\Continuum\Anaconda3\lib\site-packages\bokeh\io.py in show(obj, browser, new) 300 if obj not in _state.document.roots: 301 _state.document.add_root(obj) --> 302 return _show_with_state(obj, _state, browser, new) 303 304 C:\Users\x\AppData\Local\Continuum\Anaconda3\lib\site-packages\bokeh\io.py in _show_with_state(obj, state, browser, new) 310 311 if state.notebook: --> 312 comms_handle = _show_notebook_with_state(obj, state) 313 shown = True 314 C:\Users\x\AppData\Local\Continuum\Anaconda3\lib\site-packages\bokeh\io.py in _show_notebook_with_state(obj, state) 334 comms_target = make_id() 335 publish_display_data({'text/html': notebook_div(obj, comms_target)}) --> 336 handle = _CommsHandle(get_comms(comms_target), state.document, state.document.to_json()) 337 state.last_comms_handle = handle 338 return handle C:\Users\x\AppData\Local\Continuum\Anaconda3\lib\site-packages\bokeh\document.py in to_json(self) 792 # this is a total hack to go via a string, needed because 793 # our BokehJSONEncoder goes straight to a string. --> 794 doc_json = self.to_json_string() 795 return loads(doc_json) 796 C:\Users\x\AppData\Local\Continuum\Anaconda3\lib\site-packages\bokeh\document.py in to_json_string(self, indent) 785 } 786 --> 787 return serialize_json(json, indent=indent) 788 789 def to_json(self): C:\Users\x\AppData\Local\Continuum\Anaconda3\lib\site-packages\bokeh\core\json_encoder.py in serialize_json(obj, encoder, indent, **kwargs) 97 indent = 2 98 ---> 99 return json.dumps(obj, cls=encoder, allow_nan=False, indent=indent, separators=separators, sort_keys=True, **kwargs) C:\Users\x\AppData\Local\Continuum\Anaconda3\lib\json\__init__.py in dumps(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw) 235 check_circular=check_circular, allow_nan=allow_nan, indent=indent, 236 separators=separators, default=default, sort_keys=sort_keys, --> 237 **kw).encode(obj) 238 239 C:\Users\x\AppData\Local\Continuum\Anaconda3\lib\json\encoder.py in encode(self, o) 197 # exceptions aren't as detailed. The list call should be roughly 198 # equivalent to the PySequence_Fast that ''.join() would do. --> 199 chunks = self.iterencode(o, _one_shot=True) 200 if not isinstance(chunks, (list, tuple)): 201 chunks = list(chunks) C:\Users\x\AppData\Local\Continuum\Anaconda3\lib\json\encoder.py in iterencode(self, o, _one_shot) 255 self.key_separator, self.item_separator, self.sort_keys, 256 self.skipkeys, _one_shot) --> 257 return _iterencode(o, 0) 258 259 def _make_iterencode(markers, _default, _encoder, _indent, _floatstr, ValueError: Out of range float values are not JSON compliant