mne-python icon indicating copy to clipboard operation
mne-python copied to clipboard

bad colormap behavior when brain vlim sliders crossover

Open drammock opened this issue 1 month ago • 0 comments

Description of the problem

when reviewing #12612 I noticed odd behavior (also present on main): if vmin slider is moved to be a larger value than vmid slider, and then moved back again to be a smaller value than vmid, vmid behaves as though its value were pushed up to wherever vmin topped out but the vmid slider itself stays in its original position. Afterward, a tiny adjustment to vmid will have a big effect:

sliders.webm

Steps to reproduce

run this code, then adjust sliders as is done in the video

import mne
path = mne.datasets.sample.data_path()
stc = mne.read_source_estimate(path / "MEG/sample/fsaverage_audvis-meg")
brain = stc.plot("fsaverage", hemi="both", subjects_dir=path / "subjects")

Link to data

No response

Expected results

not sure what correct behavior should be. Some options:

  1. when dragging vmin past vmid in positive direction, vmid gets dragged along with it (I think this is how it used to work in an older version of the GUI?)
    • unclear what should happen to vmid when dragging vmin back down... simplest is to leave it wherever vmin topped out, but that's not a great UX. Harder to implement but nicer UX would be to remember where vmid was and have it drag along with vmin up to (but not past) that prior location.
  2. when dragging vmin toward vmid in positive direction, vmin is not allowed to go past vmid --- force users to adjust vmid upward first

Actual results

see video above

Additional information

Platform             Linux-5.15.0-58-generic-x86_64-with-glibc2.35
Python               3.11.7 | packaged by conda-forge | (main, Dec 23 2023, 14:43:09) [GCC 12.3.0]
Executable           /opt/mambaforge/envs/mnedev/bin/python3.11
CPU                  x86_64 (16 cores)
Memory               125.7 GB

Core
├☒ mne               1.7.0.dev76+g52a905928 (outdated, release 1.7.0 is available!)
├☑ numpy             1.26.4 (OpenBLAS 0.3.23.dev with 16 threads)
├☑ scipy             1.11.4
└☑ matplotlib        3.8.2 (backend=QtAgg)

Numerical (optional)
├☑ sklearn           1.3.2
├☑ numba             0.58.1
├☑ nibabel           5.2.0
├☑ nilearn           0.10.2
├☑ dipy              1.8.0
├☑ openmeeg          2.5.7
├☑ cupy              13.0.0
├☑ pandas            2.1.4
├☑ h5io              0.2.1
└☑ h5py              3.10.0

Visualization (optional)
├☑ pyvista           0.43.2 (OpenGL 4.5.0 NVIDIA 545.23.08 via NVIDIA GeForce RTX 2060/PCIe/SSE2)
├☑ pyvistaqt         0.11.0
├☑ vtk               9.3.0
├☑ qtpy              2.4.1 (PyQt6=6.6.0)
├☑ ipympl            0.9.3
├☑ pyqtgraph         0.13.3
├☑ mne-qt-browser    0.7.0.dev9+g547b976
├☑ ipywidgets        8.1.1
├☑ trame_client      2.14.2
├☑ trame_server      2.15.0
├☑ trame_vtk         2.7.0
└☑ trame_vuetify     2.3.1

Ecosystem (optional)
├☑ mne-bids          0.15.0.dev24+g05b8e6b8
├☑ mne-nirs          0.7.0.dev0
├☑ mne-connectivity  0.7.0.dev0
├☑ mne-bids-pipeline 1.6.0.dev8+g9055e9c
├☑ neo               0.13.0
├☑ eeglabio          0.0.2-4
├☑ edfio             0.4.0
├☑ mffpy             0.8.0
├☑ pybv              0.7.5
└☐ unavailable       mne-features, mne-icalabel

drammock avatar May 16 '24 14:05 drammock