matplotlib / matplotlib/ipympl
Figure does not show without explicit plt.show()
Nessuno ha ancora preso questa issue.
- Lingua principale
- Jupyter Notebook
- Stelle
- 1.7k
- Fork
- 234
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
## Report
Under some circumstances when using `ipympl` the figure does not show up in the output area unless `plt.show()` is explicitly called.
At the moment the reproduction is a bit finicky. As a minimal example these cells, when executed once show a nice empty plot:
````
%matplotlib widget
from matplotlib import pyplot as plt
import pandas as pd
from io import StringIO
````
````python
fig, axes = plt.subplots(figsize=(6, 5.5))
s = """1,2,3
1,2,3"""
csv = StringIO(s)
df = pd.read_csv(csv)
# with this it always works:
# plt.show()
````
When changing the line to read a more complex dataset `df = pd.read_csv(file_with_1MB)` the empty figure sometimes does not show up anymore. If I add an explicit `plt.show()` at the end the figure always appears as normal.
It is not directly tied to the larger data file though, even the example above sometimes shows the same behavior after the second cell is re-executed several times. When using `%matplotlib inline` no issues or errors occur.
I am somewhat certain that this behavior is a regression, as it was not occurring in earlier versions of the Jupyterlab/ipympl ecosystem (with Jupyterlab/ipympl older than approximately six months ago).
Any hints how to debug this a bit better would be appreciated.
## Versions
This issues occurs with a recent jupyterlab / ipympl installation (and using Chrome 142.0.7444.60). Here, this is on Windows 11 but the issue also occurs on Linux systems.
```
3.13.9 | packaged by conda-forge | (main, Oct 22 2025, 23:12:41) [MSC v.1944 64 bit (AMD64)]
ipympl version: 0.9.8
Selected Jupyter core packages...
IPython : 9.7.0
ipykernel : 7.1.0
ipywidgets : 8.1.8
jupyter_client : 8.6.3
jupyter_core : 5.9.1
jupyter_server : 2.17.0
jupyterlab : 4.4.10
nbclient : 0.10.2
nbconvert : 7.16.6
nbformat : 5.10.4
notebook : 7.4.4
qtconsole : not installed
traitlets : 5.14.3
C:\tools\miniconda3\Library\envs\jupyter\share\jupyter\labextensions
jupyter-matplotlib v0.11.8 enabled ok
jupyterlab_pygments v0.3.0 enabled ok (python, jupyterlab_pygments)
@jupyter-notebook/lab-extension v7.4.7 enabled ok
@jupyter-widgets/jupyterlab-manager v5.0.15 enabled ok (python, jupyterlab_widgets)
@mbektas/notebook-intelligence v1.1.2 enabled ok (python, notebook_intelligence)
```
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia riproducendo le due celle del notebook con `%matplotlib widget`, esecuzioni ripetute e il CSV più grande descritto nel report; confronta con `%matplotlib inline`. Il payload non indica file o test del repository. Il lavoro è completato quando la figura interattiva viene visualizzata in modo affidabile senza una chiamata esplicita a `plt.show()`.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- jupyter-notebook, pandas, python
- Ambito
- frontend
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 42/100