matplotlib / matplotlib/ipympl

Zoom does not respect Ctrl key for retaining aspect ratio

Open
#599 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Jupyter Notebook
Stars
1.7k
Forks
234
PR merge metrics
No merged PRs in 30d

Description

Describe the issue

The tooltip for the pan button widget includes the text "x/y fixes axes, CTRL fixes aspect". Holding down x/y works, but Ctrl does not retain the aspect ratio when zooming with the right mouse button (at least not in Firefox).

Versions

I'm using the quay.io/jupyter/scipy-notebook docker image with image id 36fc325c0178.

$ ( set -x ; python -c "import sys; print('\n',sys.version); import ipympl; print('ipympl version:', ipympl.__version__)" ; jupyter --version ; jupyter nbextension list ; jupyter labextension list )
+ python -c 'import sys; print('\''\n'\'',sys.version); import ipympl; print('\''ipympl version:'\'', ipympl.__version__)'

 3.12.11 | packaged by conda-forge | (main, Jun  4 2025, 14:45:31) [GCC 13.3.0]
ipympl version: 0.9.7
+ jupyter --version
Selected Jupyter core packages...
IPython          : 9.4.0
ipykernel        : 6.29.5
ipywidgets       : 8.1.7
jupyter_client   : 8.6.3
jupyter_core     : 5.8.1
jupyter_server   : 2.16.0
jupyterlab       : 4.4.4
nbclient         : 0.10.2
nbconvert        : 7.16.6
nbformat         : 5.10.4
notebook         : 7.4.4
qtconsole        : not installed
traitlets        : 5.14.3
+ jupyter nbextension list
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 nbclassic nbconvert notebook run server troubleshoot trust

Jupyter command `jupyter-nbextension` not found.
+ jupyter labextension list
JupyterLab v4.4.4
/opt/conda/share/jupyter/labextensions
        jupyterlab_pygments v0.3.0 enabled OK (python, jupyterlab_pygments)
        nbdime-jupyterlab v3.0.2 enabled OK
        jupyter-matplotlib v0.11.7 enabled OK
        @jupyter-notebook/lab-extension v7.4.4 enabled OK
        @jupyterlab/git v0.51.2 enabled OK (python, jupyterlab-git)
        @jupyter-widgets/jupyterlab-manager v5.0.15 enabled OK (python, jupyterlab_widgets)

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.

Research direction

Reproduce the pan button zoom behavior in the reported JupyterLab setup, using Firefox and the right mouse button, and compare the Ctrl modifier with the working x/y modifier. Trace the pan button widget's browser-side input handling; done means Ctrl retains the aspect ratio while zooming and the tooltip remains accurate.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter, jupyter-notebook
Domain
frontend, web-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.