mne-tools / mne-tools/mne-python
BUG: interactive plot axes shrink to zero when moving cursor across plot
Nobody has claimed this yet.
- 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.
Actual results
Plot elements shrink way down.
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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