occasional graphical corruption when manipulating plots using the zoom and pan widgets

Open
#566 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
jupyter, jupyter-notebook, python

Research direction

Reproduce the issue with a large plot in JupyterLab 4.2.3 using ipympl 0.9.4, then manipulate it with the zoom, pan, Back, Forward, and Home controls. Compare the canvas and axes after a failed redraw and verify the result with the Download plot button; done means corrupted pixels no longer remain after widget interactions.

Written by the indexing model from the issue text.

Description

Describe the issue

Manipulating fairly large (~M points) plots,. found occasionally that the redraw would fail, then would leave old pixels in place.

Using the 'Back to previous view' / 'Forward to next view' appears to fix the corruption, otherwise it just sticks around until the figure is redrawn by re-running the cell producing it. I.E., once it appears, hitting the 'home' button does not clear it.

Affects both the plot as well as the axes, with the axes becoming unreadable. Saving the corrupted pixels using the 'Download plot' button works - in that the saved png includes the pixel corruption.

Versions


 3.12.3 (main, Jul 15 2024, 15:34:06) [GCC 12.2.0]
ipympl version: 0.9.4
Selected Jupyter core packages...
IPython          : 8.26.0
ipykernel        : 6.29.5
ipywidgets       : 8.1.5
jupyter_client   : 8.6.2
jupyter_core     : 5.7.2
jupyter_server   : 2.14.2
jupyterlab       : 4.2.3
nbclient         : 0.10.0
nbconvert        : 7.16.4
nbformat         : 5.10.4
notebook         : not installed
qtconsole        : not installed
traitlets        : 5.14.3
usage: jupyter [-h] [--version] [--config-dir] [--data-dir] [--runtime-dir] [--paths] [--json] [--debug] [subcommand]

Jupyter: Interactive Computing

positional arguments:
  subcommand     the subcommand to launch

options:
  -h, --help     show this help message and exit
  --version      show the versions of core jupyter packages and exit
  --config-dir   show Jupyter config dir
  --data-dir     show Jupyter data dir
  --runtime-dir  show Jupyter runtime dir
  --paths        show all Jupyter paths. Add --json for machine-readable format.
  --json         output paths as machine-readable json
  --debug        output debug information about paths

Available subcommands: dejavu events execute kernel kernelspec lab labextension labhub migrate nbconvert run server troubleshoot trust

Jupyter command `jupyter-nbextension` not found.

I assume you meant || jupyter labextension list not &&.

JupyterLab v4.2.3
/home/rgd2/.pyenv/versions/3.12.3/share/jupyter/labextensions
        jupyterlab_pygments v0.3.0 enabled OK (python, jupyterlab_pygments)
        jupyter-matplotlib v0.11.4 enabled OK
        @jupyter-widgets/jupyterlab-manager v5.0.13 enabled OK (python, jupyterlab_widgets)

Other labextensions (built into JupyterLab)
   app dir: /home/rgd2/.pyenv/versions/3.12.3/share/jupyter/lab
Dominant language
Jupyter Notebook
Stars
1.7k
Forks
234
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from matplotlib/ipympl

All issues in matplotlib/ipympl

Similar issues

More Data Visualization issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.