matplotlib / matplotlib/ipympl

No heatmap shown with `seaborn` and `%matplotlib widget`

Open
#391 16 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Jupyter Notebook
Stars
1.7k
Forks
234
PR merge metrics
No merged PRs in 30d

Description

## Describe the issue

Thank you very much for providing this tool!

I have an apparently `seaborn`-related problem with showing widgets; I am posting this here first. Please let me know if you think this problem is rather on `seaborn`'s end and I'll repost it there.

---

The problem: `seaborn` figures are not shown in JupyterLab with `%matplotlib widget` (they do show up with `%matplotlib inline`):

```
%matplotlib widget
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

df = pd.DataFrame([[10, 20, 30, 40], [50, 30, 8, 15],
[25, 14, 41, 8], [7, 14, 21, 28]])
sns.heatmap(df, cmap='RdYlGn', linewidths=0.30, annot=True)
```
![image](https://user-images.githubusercontent.com/7207093/141105912-278b891b-14fd-447a-8205-87e9851c0f64.png)

```
%matplotlib inline
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

df = pd.DataFrame([[10, 20, 30, 40], [50, 30, 8, 15],
[25, 14, 41, 8], [7, 14, 21, 28]])
sns.heatmap(df, cmap='RdYlGn', linewidths=0.30, annot=True)
```
![image](https://user-images.githubusercontent.com/7207093/141107251-32aaa188-d6e9-4505-b8bb-0e8f539e4294.png)

---

No problem with `matplotlib`:

```
%matplotlib widget
import matplotlib.pyplot as plt

plt.plot([[1, 2], [0, 0]])
```
![image](https://user-images.githubusercontent.com/7207093/141106050-b2e8d6ba-0c58-4ff8-9d33-890909d06e1d.png)

## Versions

```
ipympl version: 0.8.2
Selected Jupyter core packages...
IPython : 7.29.0
ipykernel : 6.4.2
ipywidgets : 7.6.5
jupyter_client : 7.0.6
jupyter_core : 4.9.1
jupyter_server : 1.11.2
jupyterlab : 3.2.2
nbclient : 0.5.5
nbconvert : 6.2.0
nbformat : 5.1.3
notebook : 6.4.5
qtconsole : not installed
traitlets : 5.1.1
Known nbextensions:
config dir: /home/dominique/.jupyter/nbconfig
notebook section
nbextensions_configurator/config_menu/main enabled
- Validating: problems found:
- require? X nbextensions_configurator/config_menu/main
contrib_nbextensions_help_item/main enabled
- Validating: OK
spellchecker/main enabled
- Validating: OK
gist_it/main enabled
- Validating: OK
tree section
nbextensions_configurator/tree_tab/main enabled
- Validating: problems found:
- require? X nbextensions_configurator/tree_tab/main
config dir: /home/dominique/.local/miniconda/envs/test/etc/jupyter/nbconfig
notebook section
jupyter-matplotlib/extension enabled
- Validating: OK
jupyter-js-widgets/extension enabled
- Validating: OK
JupyterLab v3.2.2
/home/dominique/.local/miniconda/envs/test/share/jupyter/labextensions
jupyter-matplotlib v0.10.2 enabled OK
@jupyter-widgets/jupyterlab-manager v3.0.1 enabled OK (python, jupyterlab_widgets)

```

Installed from conda-forge
```
mamba create -n test matplotlib pandas seaborn jupyterlab ipympl -y -c conda-forge
```

More versions:
```
# Name Version Build Channel
matplotlib 3.4.3 py39hf3d152e_1 conda-forge
matplotlib-base 3.4.3 py39h2fa2bec_1 conda-forge
matplotlib-inline 0.1.3 pyhd8ed1ab_0 conda-forge
pandas 1.3.4 py39hde0f152_1 conda-forge
seaborn 0.11.2 hd8ed1ab_0 conda-forge
seaborn-base 0.11.2 pyhd8ed1ab_0 conda-forge
```

Do you have an idea why this is happening?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the supplied seaborn heatmap and plain matplotlib plot in JupyterLab with `%matplotlib widget`, then compare them with `%matplotlib inline`. Inspect the ipympl and Jupyter widget integration used by this setup and verify the listed package versions. Done means the seaborn heatmap renders interactively with the widget backend.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter-notebook, matplotlib, pandas, python
Domain
data-visualization, frontend, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.