Jupyter Lab ValueError: Can't clean for JSON

Really new to the Jupyter/Pandas/Plotly ecosystem. Successfully reading in dataframes and calculating some new columns with success. Trying to do a simple scatter plot with a single variable.

X Variable is DeltaTimeSeconds - pretty much just monotonically increasing value

df['DeltaTimeSeconds'].describe()
count    28735.000000
mean     14429.311258
std       8301.268089
min          0.000000
25%       7249.500000
50%      14433.000000
75%      21616.500000
max      28800.000000
Name: DeltaTimeSeconds, dtype: float64

Y Variable is AI01 - a floating-point measured value from a piece of manufacturing equipment

df['AI01'].describe()
count    28735.000000
mean      7613.120717
std       6526.985839
min          6.747771
25%       2126.074707
50%       3712.778809
75%      13935.562010
max      19550.572270
Name: AI01, dtype: float64

Straight from Jupyter Lab Github Page with minor tweak for my dataset

from IPython.display import display
def Plotly(data=[], layout={}):
    bundle = {}
    bundle['application/vnd.plotly.v1+json'] = {
        'data': data,
        'layout': layout,
    }
    display(bundle, raw=True)

data = [
    {'x': df['DeltaTimeSeconds'], 'y': df['AI01'], 'type': 'scatter'}
]

layout = {
    'title': 'AI01',
    'xaxis': {'title': 'DeltaTime', 'showgrid': False, 'zeroline': False},
    'yaxis': {'title': 'AI01', 'showline': False}
}
     
Plotly(data, layout)

and I get this error

C:\ProgramData\Anaconda3\lib\site-packages\ipykernel\jsonutil.py in json_clean(obj)
    195 
    196     # we don't understand it, it's probably an unserializable object
--> 197     raise ValueError("Can't clean for JSON: %r" % obj)

ValueError: Can't clean for JSON: 0            0
1            1

I doubled back and cleaned up some null rows from AI01 so I shouldn’t have any null data in AI01.

I’m suspecting I’m making a rookie mistake that I just can’t see right now.

Many thanks in advance for a nudge in the right direction. Once I get through this one I have a much more complex question that may actually challenge the group, I promise :slight_smile:

Hmm so this isn’t how I would do things… the JupyterLab page is pretty out of date at this point. Can you share the URL of the page you’re following so I can try to get it updated?

The most up to date/recommended way to do this today would be to first follow all the JupyterLab installation instructions here https://plot.ly/python/getting-started/#jupyterlab-support-python-35 and then to do something like

import plotly.express as px
figure = px.scatter(df, x='DeltaTimeSeconds', y='AI01')
figure.show()

Awesome, thanks.

Here’s the ref where I got the demo code

Will follow your link and see how it goes.

-Andy

Followed instructions - broke JupyterLab but got that working again.

Used your example code - don’t get any errors but instead get nothing rendered.

Also tried the simple examples like

import plotly.graph_objects as go
fig = go.Figure(
    data=[go.Bar(y=[2, 1, 3])],
    layout_title_text="A Figure Displayed with fig.show()"
)
fig.show()

and also nothing renders.

Played around with the renderers

import plotly.io as pio
pio.renderers
Renderers configuration
-----------------------
    Default renderer: 'jupyterlab'
    Available renderers:
        ['plotly_mimetype', 'jupyterlab', 'nteract', 'vscode',
         'notebook', 'notebook_connected', 'kaggle', 'azure', 'colab',
         'cocalc', 'databricks', 'json', 'png', 'jpeg', 'jpg', 'svg',
         'pdf', 'browser', 'firefox', 'chrome', 'chromium', 'iframe',
         'iframe_connected', 'sphinx_gallery']

Were you able to install the JupyterLab extensions? They are required for figure.show() to work.

Yes I tried to follow those instructions to a T. I am wondering if I broke the install because I had conflicting plotly extensions installed maybe? If you take a look at the github link above it asks me to install an extension to render plotly. Is this complementary to your instructions or possible in conflict?