mne-tools / mne-tools/mne-python

BUG: interactive plot axes shrink to zero when moving cursor across plot

Open
#14,317 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

BUG
Dominant language
Python
Stars
3.5k
Forks
1.6k
Avg merge
1d 6h
Merged PRs (30d)
100

Description

Description of the problem

Recently, using evoked.plot_joint() calls to check some data quality, I discovered that the interactive plots are mysteriously shrinking down to nothing if my cursor moves over the figure. I've replicated this behavior on Linux and MacOs ipython sessions in the terminal (it happens with and without an IDE).

I haven't seen this behavior before, so I suspect we've made some recent changes to interactive plot API's that are resulting in the axes shrinking. Any ideas?

Steps to reproduce
import mne
test_path = mne.datasets.testing.data_path(download=False)
evk_path = test_path / "MEG/sample/sample_audvis_trunc-ave.fif"
evk = mne.read_evokeds(evk_path)
evk[0].plot_joint()

# move the cursor into the figure
Link to data

No response

Expected results

Plot elements should remain the original size.

Image
Actual results

Plot elements shrink way down.

Image
Additional information

$ mne sys_info
Platform Linux-6.8.0-139-generic-x86_64-with-glibc2.39 (X11)
Python 3.14.6 | packaged by conda-forge | (main, Jul 24 2026, 16:09:24) [GCC 14.3.0]
Executable /home/erica/miniconda3/envs/bids_dev26/bin/python3.14
CPU AMD Ryzen 9 3900X 12-Core Processor (24 cores)
Memory 62.7 GiB

Core
├☑ mne 1.14.0.dev29+gc166d8c19 (development, latest release is 1.13.2)
├☑ numpy 2.4.6 (OpenBLAS 0.3.33 with 12 threads via pthreads)
├☑ scipy 1.18.0
└☑ matplotlib 3.11.1 (backend=qtagg)

Numerical (optional)
├☑ scikit-learn 1.9.0
├☑ threadpoolctl 3.6.0
├☑ numba 0.66.0
├☑ nibabel 5.4.2
├☑ nilearn 0.13.1
├☑ dipy 1.12.1
├☑ openmeeg 2.5.16
├☑ pandas 3.0.3
├☑ h5io 0.2.5
├☑ h5py 3.16.0
└☐ unavailable python-picard, jamica, cupy

Visualization (optional)
├☑ pyvista 0.48.4 (OpenGL 4.6 (Core Profile) Mesa 25.2.8-0ubuntu0.24.04.2 via AMD Radeon RX 570 Series (radeonsi, polaris10, ACO, DRM 3.57, 6.8.0-139-generic))
├☑ pyvistaqt 0.12.0
├☑ vtk 9.6.2
├☑ qtpy 2.4.3 (PySide6=6.11.1)
├☑ pyqtgraph 0.14.0
├☑ mne-qt-browser 0.7.5
├☑ ipywidgets 8.1.8
├☑ trame 3.13.2
├☑ trame_client 3.13.2
├☑ trame_server 3.12.5
├☑ trame_vtk 2.11.14
├☑ trame_vuetify 3.2.5
└☐ unavailable ipympl, trame_pyvista

Ecosystem (optional)
├☑ mne-bids 0.20.0.dev24+g6564a0739
├☑ mne-nirs 0.7.3
├☑ mne-connectivity 0.8.1
├☑ mne-icalabel 0.9.0
├☑ mne-bids-pipeline 1.11.0.dev63+g9fe5082cc
├☑ autoreject 0.4.4
├☑ neo 0.14.5
├☑ eeglabio 0.1.3
├☑ edfio 0.4.14
├☑ curryreader 0.1.2
├☑ mffpy 0.11.0
├☑ pybv 0.8.1
├☑ pymef 1.4.8
├☑ antio 0.7.1
├☑ defusedxml 0.7.1
└☐ unavailable mne-features

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

Start by running the provided evoked.plot_joint() reproduction with the sample data and moving the cursor into the figure. Trace the interactive plotting path from evoked.plot_joint and verify that cursor movement leaves the plot elements at their original size.

Written by the indexing model from the issue text.

Assessment

Tech stack
matplotlib, python
Domain
data-visualization
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.