I was trying to print a plotly plot in Visual Studio Code and caught this error:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-40-e07b5feb5ded> in <module>
     30 
     31 fig.update_layout(height=nrows*500)
---> 32 fig.show()

C:\Python38\lib\site-packages\plotly\basedatatypes.py in show(self, *args, **kwargs)
   3147         import plotly.io as pio
   3148 
-> 3149         return pio.show(self, *args, **kwargs)
   3150 
   3151     def to_json(self, *args, **kwargs):

C:\Python38\lib\site-packages\plotly\io\_renderers.py in show(fig, renderer, validate, **kwargs)
    383 
    384         if not nbformat or LooseVersion(nbformat.__version__) < LooseVersion("4.2.0"):
--> 385             raise ValueError(
    386                 "Mime type rendering requires nbformat>=4.2.0 but it is not installed"
    387             )

ValueError: Mime type rendering requires nbformat>=4.2.0 but it is not installed

The code I used:


import plotly.graph_objects as go
from plotly.subplots import make_subplots
import plotly.express as px

df = df[df['Data']>0]
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
df = df[(df['Id'] ==1)|(df['Id'] ==6)]

dfp = pd.pivot_table(df,
                     values="Data",
                     index=['Timestamp'],
                     columns=['Id'],
               )
nrows = len(dfp.columns) 

fig = make_subplots(rows=nrows,
                    cols=1,
                    subplot_titles=['Id '+str(c) for c in dfp.columns])

# add traces
x = 1
for i, col in enumerate(dfp.columns):
    fig.add_trace(go.Scatter(x=dfp.index, y=dfp[col].values,
                             name="Id "+str(col),
                             mode="lines",
                             ),
                  row=i+1,
                  col=1)

fig.update_layout(height=nrows*500)
fig.show()

I tried pip install nbformat in the console following this feed on GitHub and this question on stackoverflow
but it did not work.

However, it seems the code could run with the last 2 rows removed:

fig.update_layout(height=nrows*500)
fig.show()

Method 1.

reinstall ipykernel via pipenv install ipykernel

Method 2.

pip install --upgrade nbformat

!pip install nbformat 
  1. Install this.
  2. Restart your Kernel.
  3. Dam sure it will work!

For those that use conda, this worked for me:

conda activate myenv
conda install nbformat

Then restart the kernel.

I just ran into this problem too. In my case, it turned out I had only installed ipykernel, but it’s best to install the jupyter metapackage.

Reference: https://code.visualstudio.com/docs/datascience/jupyter-notebooks