matplotlib / ipympl

Matplotlib Jupyter Integration
https://matplotlib.org/ipympl/
BSD 3-Clause "New" or "Revised" License
1.57k stars 226 forks source link

Only "Loading widget..." but no Matplotlib figures (fresh install with conda) #170

Open paugier opened 4 years ago

paugier commented 4 years ago

Fresh install with conda (laptop with Ubuntu 18.04 => nothing to do with Docker).

Maybe related to #161 ?

Matplotlib figures do not show up and I get only

Loading widget...
[<matplotlib.lines.Line2D at 0x7fa9e8358e50>]

Standard installation with conda:

conda install -c conda-forge ipympl nodejs
jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-matplotlib
jupyter labextension list
JupyterLab v1.2.5
Known labextensions:
   app dir: /home/marianne/miniconda3/share/jupyter/lab
        @jupyter-widgets/jupyterlab-manager v1.1.0  enabled  OK
        jupyter-matplotlib v0.5.0  enabled  OK

Note that ipywidgets seems to work fine. from ipywidgets import Button; Button(description='test') gives a button.

martinRenou commented 4 years ago

Could you provide the output of:

which jupyter

and

which python

Are you in a conda environment?

paugier commented 4 years ago

jupyter, jupyter-lab and python all in /home/marianne/miniconda3/bin.

I'm going to try in a conda environment.

martinRenou commented 4 years ago

Did you make sure to clear the browser cache? By restarting the browser or hard refreshing

paugier commented 4 years ago

Ah it works in an virtual environment...

I'm trying to compare the conda packages installed in base and in the virtual env, but there are of course many packages and it's not evident.

Python 3.7 for base and Python 3.8 for the venv. Same versions for all jupyter* packages...

Nodejs 11.14 for base and 13.7 in the venv...

martinRenou commented 4 years ago

I am not sure what is going wrong here... But I would suggest uninstalling everything from the base now, in order to reduce the chances to get conflicts between environments.

paugier commented 4 years ago

Hum, strange: ipympl=0.2.1 in base and ipympl=0.4.1=py_0 in venv !

After conda update -c conda-forge ipympl nodejs, it works!

I thought conda install updates the packages and it did not update them in this case.

It is also a mystery why I have such old packages in base (miniconda installed today). I may have done conda install matplotlib before conda config --add channels conda-forge, but it should not affect ipympl version (?)

Anyway, it is easy to get stuck in this problem...

paugier commented 4 years ago

From conda install -h:

    Conda attempts to install the newest versions of the requested packages. To
    accomplish this, it may update some packages that are already installed, or
    install additional packages.
martinRenou commented 4 years ago

Then it explains why it did not work. jupyter labextension install jupyter-matplotlib will install the latest labextension available online, which is not compatible with ipympl 0.2.1...

We might want to update the README telling people to be careful about the labextension version.

paugier commented 4 years ago

I still don't understand why conda install -c conda-forge ipympl nodejs didn't not "install the newest versions of the requested packages".

TomNicholas commented 4 years ago

I'm having a similar problem. When running the example I just get

Loading widget...

I'm in a conda environment (output of conda list below), and which python/jupyter/jupyter-lab all point to that conda environment. I've also tried closing and reopening the browser to clear the cache.

Any other ideas?

Output of conda list ``` # packages in environment at /home/tegn500/anaconda3/envs/py37: # # Name Version Build Channel _anaconda_depends 2019.03 py37_0 _ipyw_jlab_nb_ext_conf 0.1.0 py37_0 _libgcc_mutex 0.1 main aiohttp 3.6.2 pypi_0 pypi alabaster 0.7.12 py37_0 anaconda custom py37_1 anaconda-client 1.7.2 py37_0 anaconda-navigator 1.9.7 py37_0 anaconda-project 0.8.3 py_0 animatplot 0.4.1 pypi_0 pypi appdirs 1.4.3 py_1 conda-forge asciitree 0.3.3 py_2 conda-forge asn1crypto 1.0.1 py37_0 astroid 2.3.1 py37_0 astropy 3.2.2 py37h7b6447c_0 async-timeout 3.0.1 pypi_0 pypi atomicwrites 1.3.0 py37_1 attrs 19.2.0 py_0 babel 2.7.0 py_0 backcall 0.1.0 py37_0 backports 1.0 py_2 backports.functools_lru_cache 1.6.1 py_0 backports.os 0.1.1 py37_0 backports.shutil_get_terminal_size 1.0.0 py37_2 backports.tempfile 1.0 py_1 backports.weakref 1.0.post1 py_1 beautifulsoup4 4.8.0 py37_0 bitarray 1.0.1 py37h7b6447c_0 bkcharts 0.2 py37_0 black 19.10b0 py37_0 conda-forge blas 1.0 mkl bleach 3.1.0 py37_0 blosc 1.16.3 hd408876_0 bokeh 1.4.0 py37_0 boto 2.49.0 py37_0 bottleneck 1.2.1 py37h035aef0_1 bzip2 1.0.8 h7b6447c_0 ca-certificates 2020.4.5.1 hecc5488_0 conda-forge cairo 1.14.12 h8948797_3 certifi 2020.4.5.1 py37hc8dfbb8_0 conda-forge cffi 1.12.3 py37h2e261b9_0 cftime 1.0.4.2 pypi_0 pypi chardet 3.0.4 py37_1003 click 7.0 py37_0 cloudpickle 1.2.2 py_0 clyent 1.2.2 py37_1 colorama 0.4.1 py37_0 conda-package-handling 1.6.0 py37h7b6447c_0 conda-verify 3.4.2 py_1 configobj 5.0.6 pypi_0 pypi contextlib2 0.6.0 py_0 cryptography 2.7 py37h1ba5d50_0 curl 7.65.3 hbc83047_0 cycler 0.10.0 py37_0 cython 0.29.13 py37he6710b0_0 cytoolz 0.10.0 py37h7b6447c_0 dask 2.5.2 py_0 dask-core 2.5.2 py_0 dask-labextension 1.1.0 pypi_0 pypi dbus 1.13.6 h746ee38_0 decorator 4.4.0 py37_1 defusedxml 0.6.0 py_0 distributed 2.5.2 py_0 docutils 0.15.2 py37_0 entrypoints 0.3 py37_0 et_xmlfile 1.0.1 py37_0 expat 2.2.6 he6710b0_0 fastcache 1.1.0 py37h7b6447c_0 fasteners 0.14.1 py_3 conda-forge filelock 3.0.12 py_0 flake8 3.7.9 py37hc8dfbb8_1 conda-forge flask 1.1.1 py_0 fontconfig 2.13.0 h9420a91_0 freetype 2.9.1 h8a8886c_1 fribidi 1.0.5 h7b6447c_0 fsspec 0.5.2 py_0 future 0.18.2 py37_0 get_terminal_size 1.0.0 haa9412d_0 gevent 1.4.0 py37h7b6447c_0 glib 2.56.2 hd408876_0 glob2 0.7 py_0 gmp 6.1.2 h6c8ec71_1 gmpy2 2.0.8 py37h10f8cd9_2 graphite2 1.3.13 h23475e2_0 graphviz 2.40.1 h21bd128_2 greenlet 0.4.15 py37h7b6447c_0 gst-plugins-base 1.14.0 hbbd80ab_1 gstreamer 1.14.0 hb453b48_1 h5py 2.9.0 py37h7918eee_0 harfbuzz 1.8.8 hffaf4a1_0 hdf5 1.10.4 hb1b8bf9_0 heapdict 1.0.1 py_0 holoviews 1.12.7 py_0 pyviz html5lib 1.0.1 py37_0 icu 58.2 h9c2bf20_1 idna 2.8 py37_0 imageio 2.6.0 py37_0 imagesize 1.1.0 py37_0 importlib_metadata 0.23 py37_0 intel-openmp 2019.4 243 ipykernel 5.1.2 py37h39e3cac_0 ipympl 0.5.6 pyh9f0ad1d_1 conda-forge ipython 7.8.0 py37h39e3cac_0 ipython_genutils 0.2.0 py37_0 ipywidgets 7.5.1 py_0 conda-forge isort 4.3.21 py37_0 itsdangerous 1.1.0 py37_0 jbig 2.1 hdba287a_0 jdcal 1.4.1 py_0 jedi 0.15.1 py37_0 jeepney 0.4.1 py_0 jinja2 2.10.3 py_0 joblib 0.13.2 py37_0 jpeg 9b h024ee3a_2 json5 0.8.5 py_0 jsonschema 3.0.2 py37_0 jupyter 1.0.0 py37_7 jupyter-server-proxy 1.2.0 pypi_0 pypi jupyter_bokeh 1.1.1 py_0 bokeh jupyter_client 5.3.3 py37_1 jupyter_console 6.0.0 py37_0 jupyter_core 4.5.0 py_0 jupyterlab 1.1.4 pyhf63ae98_0 jupyterlab_server 1.0.6 py_0 keyring 18.0.0 py37_0 kiwisolver 1.1.0 py37he6710b0_0 krb5 1.16.1 h173b8e3_7 lazy-object-proxy 1.4.2 py37h7b6447c_0 libarchive 3.3.3 h5d8350f_5 libcurl 7.65.3 h20c2e04_0 libedit 3.1.20181209 hc058e9b_0 libffi 3.2.1 hd88cf55_4 libgcc-ng 9.1.0 hdf63c60_0 libgfortran-ng 7.3.0 hdf63c60_0 liblief 0.9.0 h7725739_2 libpng 1.6.37 hbc83047_0 libsodium 1.0.16 h1bed415_0 libssh2 1.8.2 h1ba5d50_0 libstdcxx-ng 9.1.0 hdf63c60_0 libtiff 4.0.10 h2733197_2 libtool 2.4.6 h7b6447c_5 libuuid 1.0.3 h1bed415_2 libxcb 1.13 h1bed415_1 libxml2 2.9.9 hea5a465_1 libxslt 1.1.33 h7d1a2b0_0 llvmlite 0.29.0 py37hd408876_0 locket 0.2.0 py37_1 lxml 4.4.1 py37hefd8a0e_0 lz4-c 1.8.1.2 h14c3975_0 lzo 2.10 h49e0be7_2 markdown 3.2.1 py_0 conda-forge markupsafe 1.1.1 py37h7b6447c_0 matplotlib 3.1.1 py37h5429711_0 matplotlib-base 3.1.3 py37hef1b27d_0 mccabe 0.6.1 py37_1 mistune 0.8.4 py37h7b6447c_0 mkl 2019.4 243 mkl-service 2.3.0 py37he904b0f_0 mkl_fft 1.0.14 py37ha843d7b_0 mkl_random 1.1.0 py37hd6b4f25_0 mock 3.0.5 py37_0 monotonic 1.5 py_0 conda-forge more-itertools 7.2.0 py37_0 mpc 1.1.0 h10f8cd9_1 mpfr 4.0.1 hdf1c602_3 mpmath 1.1.0 py37_0 msgpack-python 0.6.1 py37hfd86e86_1 multidict 4.7.4 pypi_0 pypi multipledispatch 0.6.0 py37_0 mypy 0.761 py_0 conda-forge mypy_extensions 0.4.3 py37hc8dfbb8_1 conda-forge natsort 6.2.0 pypi_0 pypi navigator-updater 0.2.1 py37_0 nbconvert 5.6.0 py37_1 nbformat 4.4.0 py37_0 ncurses 6.1 he6710b0_1 netcdf4 1.5.3 pypi_0 pypi networkx 2.3 py_0 nltk 3.4.5 py37_0 nodejs 11.14.0 he1b5a44_1 conda-forge nose 1.3.7 py37_2 notebook 6.0.1 py37_0 numba 0.45.1 py37h962f231_0 numcodecs 0.6.4 py37he1b5a44_0 conda-forge numexpr 2.7.0 py37h9e4a6bb_0 numpy 1.17.2 py37haad9e8e_0 numpy-base 1.17.2 py37hde5b4d6_0 numpydoc 0.9.1 py_0 olefile 0.46 py37_0 openpyxl 3.0.0 py_0 openssl 1.1.1g h516909a_0 conda-forge packaging 19.2 py_0 pandas 0.25.1 py37he6710b0_0 pandoc 2.2.3.2 0 pandocfilters 1.4.2 py37_1 panel 0.8.1 pyh8c360ce_0 conda-forge pango 1.42.4 h049681c_0 param 1.9.3 py_0 conda-forge parso 0.5.1 py_0 partd 1.0.0 py_0 patchelf 0.9 he6710b0_3 path.py 12.0.1 py_0 pathlib2 2.3.5 py37_0 pathspec 0.7.0 py_0 conda-forge patsy 0.5.1 py37_0 pcre 8.43 he6710b0_0 pep8 1.7.1 py37_0 pexpect 4.7.0 py37_0 pickleshare 0.7.5 py37_0 pillow 6.2.0 py37h34e0f95_0 pint 0.0.0 dev_0 pip 19.2.3 py37_0 pixman 0.38.0 h7b6447c_0 pkginfo 1.5.0.1 py37_0 pluggy 0.13.0 py37_0 ply 3.11 py37_0 prometheus_client 0.7.1 py_0 prompt_toolkit 2.0.10 py_0 psutil 5.6.3 py37h7b6447c_0 ptyprocess 0.6.0 py37_0 py 1.8.0 py37_0 py-lief 0.9.0 py37h7725739_2 pycodestyle 2.5.0 py37_0 pycosat 0.6.3 py37h14c3975_0 pycparser 2.19 py37_0 pycrypto 2.6.1 py37h14c3975_9 pyct 0.4.6 py_0 conda-forge pyct-core 0.4.6 py_0 conda-forge pycurl 7.43.0.3 py37h1ba5d50_0 pyflakes 2.1.1 py37_0 pygments 2.4.2 py_0 pylint 2.4.2 py37_0 pyodbc 4.0.27 py37he6710b0_0 pyopenssl 19.0.0 py37_0 pyparsing 2.4.2 py_0 pyqt 5.9.2 py37h05f1152_2 pyrsistent 0.15.4 py37h7b6447c_0 pysocks 1.7.1 py37_0 pytables 3.5.2 py37h71ec239_1 pytest 5.2.1 py37_0 pytest-arraydiff 0.3 py37h39e3cac_0 pytest-astropy 0.5.0 py37_0 pytest-clarity 0.2.0a1 py_0 conda-forge pytest-doctestplus 0.4.0 py_0 pytest-openfiles 0.4.0 py_0 pytest-remotedata 0.3.2 py37_0 python 3.7.4 h265db76_1 python-dateutil 2.8.0 py37_0 python-graphviz 0.13.2 py_0 conda-forge python-libarchive-c 2.8 py37_13 python_abi 3.7 1_cp37m conda-forge pytz 2019.3 py_0 pyviz_comms 0.7.4 pyh8c360ce_0 conda-forge pywavelets 1.0.3 py37hdd07704_1 pyyaml 5.1.2 py37h7b6447c_0 pyzmq 18.1.0 py37he6710b0_0 qt 5.9.7 h5867ecd_1 qtawesome 0.6.0 py_0 qtconsole 4.5.5 py_0 qtpy 1.9.0 py_0 readline 7.0 h7b6447c_5 regex 2020.2.20 py37h8f50634_1 conda-forge requests 2.22.0 py37_0 ripgrep 0.10.0 hc07d326_0 rise 5.6.1 py37_0 conda-forge rope 0.14.0 py_0 ruamel_yaml 0.15.46 py37h14c3975_0 scikit-image 0.15.0 py37he6710b0_0 scikit-learn 0.21.3 py37hd81dba3_0 scipy 1.4.1 py37h0b6359f_0 seaborn 0.9.0 py37_0 secretstorage 3.1.1 py37_0 send2trash 1.5.0 py37_0 setuptools 41.4.0 py37_0 simpervisor 0.3 pypi_0 pypi simplegeneric 0.8.1 py37_2 singledispatch 3.4.0.3 py37_0 sip 4.19.8 py37hf484d3e_0 six 1.12.0 py37_0 snappy 1.1.7 hbae5bb6_3 snowballstemmer 2.0.0 py_0 sortedcollections 1.1.2 py37_0 sortedcontainers 2.1.0 py37_0 soupsieve 1.9.3 py37_0 sphinx 2.2.0 py_0 sphinxcontrib 1.0 py37_1 sphinxcontrib-applehelp 1.0.1 py_0 sphinxcontrib-devhelp 1.0.1 py_0 sphinxcontrib-htmlhelp 1.0.2 py_0 sphinxcontrib-jsmath 1.0.1 py_0 sphinxcontrib-qthelp 1.0.2 py_0 sphinxcontrib-serializinghtml 1.1.3 py_0 sphinxcontrib-websupport 1.1.2 py_0 spyder 3.3.6 py37_0 spyder-kernels 0.5.2 py37_0 sqlalchemy 1.3.9 py37h7b6447c_0 sqlite 3.30.0 h7b6447c_0 statsmodels 0.10.1 py37hdd07704_0 sympy 1.4 py37_0 tbb 2019.4 hfd86e86_0 tblib 1.4.0 py_0 termcolor 1.1.0 py_2 conda-forge terminado 0.8.2 py37_0 testpath 0.4.2 py37_0 tk 8.6.8 hbc83047_0 toml 0.10.0 py_0 conda-forge toolz 0.10.0 py_0 tornado 6.0.3 py37h7b6447c_0 tqdm 4.36.1 py_0 traitlets 4.3.3 py37_0 traittypes 0.2.1 py_1 conda-forge typed-ast 1.4.1 py37h516909a_0 conda-forge typing_extensions 3.7.4.1 py37hc8dfbb8_1 conda-forge unicodecsv 0.14.1 py37_0 unixodbc 2.3.7 h14c3975_0 urllib3 1.24.2 py37_0 wcwidth 0.1.7 py37_0 webencodings 0.5.1 py37_1 werkzeug 0.16.0 py_0 wheel 0.33.6 py37_0 widgetsnbextension 3.5.1 py37_0 wrapt 1.11.2 py37h7b6447c_0 wurlitzer 1.0.3 py37_0 xarray-interactive 0.0.1 dev_0 xbout 0.1.0 dev_0 xlrd 1.2.0 py37_0 xlsxwriter 1.2.1 py_0 xlwt 1.3.0 py37_0 xstorm 0.1 dev_0 xz 5.2.4 h14c3975_4 yaml 0.1.7 had09818_2 yarl 1.4.2 pypi_0 pypi zarr 2.3.2 py37_0 conda-forge zeromq 4.3.1 he6710b0_3 zict 1.0.0 py_0 zipp 0.6.0 py_0 zlib 1.2.11 h7b6447c_3 zstd 1.3.7 h0b5b093_0 ```
PeterFogh commented 4 years ago

I also got the same Loading widget... error and later on when trying to fix it I also got the Widget loads, returns Error displaying widget: model not found error (see #154).

However, I solved both errors by enforcing the conda package version ipympl=0.5.6 which is compatible with Jupyterlab version 2. The problem was that Conda by default would version install ipympl version 0.3.3, which is not compatible with Jupyterlab version 2.

So to sum up, I got these version to work:

conda install jupyterlab=2.1.5 ipympl==0.5.6 # NOTE: ipympl installes "jupyter-matplotlib v0.7.2"

Such that which notebook code works:

%matplotlib widget

import matplotlib.pyplot as plt
import numpy as np

# Testing matplotlib interactions with a simple plot
fig = plt.figure()
plt.plot(np.sin(np.linspace(0, 20, 100)))

ipympl_plot

thomasaarholt commented 4 years ago

@PeterFogh, what OS are you running? Here on Windows 10, I just tried conda create -n test jupyterlab ipympl, and get ipympl conda-forge/noarch::ipympl-0.5.6-pyh9f0ad1d_1 among the long list of packages to be installed, i.e. version 0.5.6, not 0.3.3.

jupyterlab is version 2.1.5.

PeterFogh commented 4 years ago

Hi @thomasaarholt, Unix, more specific:

> lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:    18.04
Codename:   bionic

Yah, I should say that I installed more Conda packages then first stated, as it is probably some of their dependencies which makes Conda downgrade the ipymlp version. I tried to install all these packages, which works: conda create -n py37_jupyterlab_v2.1.5 python=3.7 jupyterlab nb_conda_kernels nodejs nbresuse flake8 jupyterlab_code_formatter black ipympl==0.5.6 nbdime dask-labextension jupyterlab-git pandas holoviews

And for setting up the JupyterLab extensions: conda activate py37_jupyterlab_v2.1.5; jupyter labextension install @ijmbarr/jupyterlab_spellchecker@0.1.6 @jupyter-widgets/jupyterlab-manager@2.0.0 @jupyterlab/geojson-extension@2.0.1 @jupyterlab/git@0.20.0 @jupyterlab/github@2.0.0 @jupyterlab/shortcutui@0.5.0-beta.2 @jupyterlab/toc@4.0.0 @krassowski/jupyterlab_go_to_definition@1.0.0 @pyviz/jupyterlab_pyviz@1.0.4 @ryantam626/jupyterlab_code_formatter@1.3.1 dask-labextension@2.0.2 jupyterlab-flake8@0.6.1 jupyterlab-python-file@0.4.0 nbdime-jupyterlab@2.0.0 --no-build; jupyter lab build; jupyter serverextension enable --py jupyterlab_code_formatter; jupyter serverextension enable dask_labextension