matplotlib / matplotlib/ipympl
rendering issues when exception is raised before cell execution completes
- Dominant language
- Jupyter Notebook
- Stars
- 1.7k
- Forks
- 234
- PR merge metrics
- No merged PRs in 30d
Description
Reposting from [jupyter/notebook issue](https://github.com/jupyter/notebook/issues/2166#issuecomment-280676430). The code cell as appears in the screen shot is:
```
import ipympl
import matplotlib.pyplot as plt
def plot_something():
plt.figure()
plt.plot([0,2],[0,2],'-')
plt.show()
plot_something()
raise Exception
```
The behavior I am seeing is different for the first time I run the cell and the next times. It is also different for different level of browser zoom levels (I am using Chrome 56.0.2924.87 on Windows 8.1)-
First time that the cell is run -
The figure appears but is not fully rendered (see image)-

If I then resize the figure using the GUI (bottom right corner), the behavior changes based on browser zoom level-
1. When using 100% zoom level (default), the figure is rendered too small. When in this state the zoom rectangle is drawn offset from the mouse pointer. The zooming is determined by the mouse pointer, it is just the drawing of the rectangle that is off.
2. When using 90% zoom level (ctrl^- once), the figure is rendered to size and the zoom rectangle is working fine.
When I rerun the cell the figure is re-rendered properly without need for resizing and independent of zoom level.
Contributor guide
Research direction
Reproduce the provided Python cell in the ipympl notebook integration using the reported Chrome environment, including the first run, raised exception, figure resize, and browser zoom levels. Compare the initial render with subsequent runs; done means the figure renders at the correct size and the zoom rectangle stays aligned after the exception without requiring a resize or rerun.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- jupyter-notebook, matplotlib, python
- Domain
- data-visualization, frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100