matplotlib / matplotlib/ipympl
Re-executing a cell hides the figure when it is given a `num=...` argument
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Jupyter Notebook
- Estrellas
- 1.7k
- Forks
- 234
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
## Describe the issue
Explicit figure numbers seem to cause a small glitch in `ipympl`. When the following cell is executed once, it shows the plot. When re-executing the cell, it disappears again.
```python
x = np.linspace(-np.pi/2, np.pi/2)
plt.figure(num=1)
plt.plot(x, np.sin(x))
```
I've attached a working example: [repeat_plot_issue.zip](https://github.com/matplotlib/ipympl/files/7705269/repeat_plot_issue.zip)
The `inline` and `notebook` backends do not have this issue, which leads me to believe this is a bug. There are two workarounds:
1. Close the figure in the beginning of the cell with e.g. `plt.close(1)`
2. Show the figure at the end of the cell with `plt.show()`
(I'm using Jupyter notebooks with a group of about 40 students, and they got confused by this difference in behavior between the backends. I understand this is not a major issue because there are simple workarounds. Still, for newcomers, it is an extra difficulty: "Help, my plot has disappeared!")
## Versions
```
3.9.7 | packaged by conda-forge | (default, Sep 29 2021, 19:20:46)
[GCC 9.4.0]
ipympl version: 0.8.2
Selected Jupyter core packages...
IPython : 7.30.1
ipykernel : 6.6.0
ipywidgets : 7.6.5
jupyter_client : 6.1.12
jupyter_core : 4.9.1
jupyter_server : 1.13.1
jupyterlab : 3.2.5
nbclient : 0.5.9
nbconvert : 6.3.0
nbformat : 5.1.3
notebook : 6.4.6
qtconsole : not installed
traitlets : 5.1.1
Known nbextensions:
config dir: /home/toon/.jupyter/nbconfig
notebook section
splitcell/splitcell disabled
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
toc2/main enabled
- Validating: OK
k3d/extension enabled
- Validating: OK
tree section
nbextensions_configurator/tree_tab/main enabled
- Validating: problems found:
- require? X nbextensions_configurator/tree_tab/main
config dir: /home/toon/.local/etc/jupyter/nbconfig
notebook section
nbdime/index enabled
- Validating: problems found:
- require? X nbdime/index
rise/main enabled
- Validating: OK
config dir: /home/toon/miniconda3/envs/py4sci/etc/jupyter/nbconfig
notebook section
jupyter-matplotlib/extension enabled
- Validating: OK
rise/main enabled
- Validating: OK
voila/extension enabled
- Validating: OK
jupyter-js-widgets/extension enabled
- Validating: OK
nbextensions_configurator/config_menu/main enabled
- Validating: problems found:
- require? X nbextensions_configurator/config_menu/main
contrib_nbextensions_help_item/main enabled
- Validating: OK
tree section
nbextensions_configurator/tree_tab/main enabled
- Validating: problems found:
- require? X nbextensions_configurator/tree_tab/main
config dir: /etc/jupyter/nbconfig
notebook section
jupyter-js-widgets/extension enabled
- Validating: OK
JupyterLab v3.2.5
/home/toon/miniconda3/envs/py4sci/share/jupyter/labextensions
k3d v2.11.0 enabled OK (python, k3d)
jupyter-matplotlib v0.10.2 enabled OK
@jupyter-widgets/jupyterlab-manager v3.0.1 enabled OK (python, jupyterlab_widgets)
@ijmbarr/jupyterlab_spellchecker v0.7.2 enabled OK (python, jupyterlab-spellchecker)
@ryantam626/jupyterlab_code_formatter v1.4.10 enabled OK (python, jupyterlab-code-formatter)
@voila-dashboards/jupyterlab-preview v2.1.0 enabled OK (python, voila)
```
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Start by running the attached repeat_plot_issue.zip example with the ipympl backend and compare it with the inline and notebook backends. Repeatedly executing the cell with plt.figure(num=1) should leave the figure visible without requiring plt.close(1) or plt.show().
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- jupyter, jupyter-notebook, python
- Área
- data-visualization, frontend
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100