matplotlib / matplotlib/ipympl
No heatmap shown with `seaborn` and `%matplotlib widget`
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)
```

```
%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)
```

---
No problem with `matplotlib`:
```
%matplotlib widget
import matplotlib.pyplot as plt
plt.plot([[1, 2], [0, 0]])
```

## 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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