napari-matplotlib icon indicating copy to clipboard operation
napari-matplotlib copied to clipboard

Runtime error when moving contrast limits

Open K-Meech opened this issue 1 year ago • 4 comments

  • Open an example image (e.g. File > Open Sample > napari builtins > Cells (3D + 2Ch))
  • Open the histogram widget
  • Move the contrast limits in the layer controls

This throws the following error with the latest napari:

File ~\anaconda3\envs\napari-env\lib\site-packages\napari_matplotlib\histogram.py:65, in HistogramWidget._update_contrast_lims(self=<napari_matplotlib.histogram.HistogramWidget object>)
     61 def _update_contrast_lims(self) -> None:
     62     for lim, line in zip(
     63         self.layers[0].contrast_limits, self._contrast_lines
     64     ):
---> 65         line.set_xdata(lim)
        lim = 7686.227544910179
        line = <matplotlib.lines.Line2D object at 0x00000169A09ED210>
     67     self.figure.canvas.draw()

File ~\anaconda3\envs\napari-env\lib\site-packages\matplotlib\lines.py:1289, in Line2D.set_xdata(self=<matplotlib.lines.Line2D object>, x=7686.227544910179)
   1276 """
   1277 Set the data array for x.
   1278
   (...)
   1286 set_ydata
   1287 """
   1288 if not np.iterable(x):
-> 1289     raise RuntimeError('x must be a sequence')
   1290 self._xorig = copy.copy(x)
   1291 self._invalidx = True

RuntimeError: x must be a sequence

K-Meech avatar Jul 10 '24 21:07 K-Meech

Given the error traceback doesn't contain napari, maybe this is a problem with a newer Matplotlib release? I'm running CI over at https://github.com/matplotlib/napari-matplotlib/pull/273 to try and debug this

dstansby avatar Jul 12 '24 13:07 dstansby

This isn't showing up as an error in tests, so I think next steps here are to add a new test to the test suite that hits this error. @K-Meech do you think you'd be able to take a look at adding a new test?

dstansby avatar Jul 12 '24 13:07 dstansby

Sure! I'll probably have time to do this tomorrow, otherwise it'll be later this week.

K-Meech avatar Jul 15 '24 09:07 K-Meech

Ended up having some free time today, so I've made a PR for this.

K-Meech avatar Jul 15 '24 10:07 K-Meech