matplotlib / matplotlib/ipympl
Figure does not show without explicit plt.show()
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Jupyter Notebook
- Sterne
- 1.7k
- Forks
- 234
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
## 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)
```
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, die zwei Notebook-Zellen mit `%matplotlib widget`, wiederholter Ausführung und der im Bericht beschriebenen größeren CSV zu reproduzieren; vergleiche mit `%matplotlib inline`. Der Payload nennt keine Repository-Dateien oder Tests. Als erledigt gilt, wenn die interaktive Abbildung zuverlässig ohne einen expliziten Aufruf von `plt.show()` erscheint.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- jupyter-notebook, pandas, python
- Bereich
- frontend
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 42/100