Chris-N-K / napari-time-series-plotter

A napari Plugin for visualisaton of pixel values over time (t+ nD) as graphs.
BSD 3-Clause "New" or "Revised" License
10 stars 5 forks source link

Fails with napari-matplotlib >=1.0 #26

Open Chris-N-K opened 1 year ago

Chris-N-K commented 1 year ago

Due to API changes napari-time-series-plotter fails if installed with napari-matplotlib >=1.0.

For version 0.1 we need to review the changes and match our code to them or change to a different canvas.

rjlopez2 commented 11 months ago

Hi Chris

thanks for reporting this, haven't realized yet. Do you mind to ping where are the relevant API changes or how we can reproduce this issue?

Cheers

Ruben

Chris-N-K commented 11 months ago

Hi @rjlopez2, if you want to reproduce this you have to make a fork and change the requirements back from napari-matplotlib < 1.0 to just napari-matplotlib. They made some changes to how the NapariMPLWidget works. I did not review the changes in depth yet, but it is enough that TSP no longer works. If you want to take a look feel free :)

Best Chris

rjlopez2 commented 11 months ago

alright

I see it fails when creating a new env with last version of napari-matplotlib and napari (i am currently using napari version 0.4.17, napari-matplotlib 0.2.1) with an old fork of the TSP i am using since long. In my case, i am using the ROI plotting mode and fails after plotting the first point.

I will see if I can track back the issue.

Interesting enough and worth to mention, the latency is fast as expected when rendering time series with the docked TSP widget despite of calling or not for plotting (ticking the layer selector for a given image).

rjlopez2 commented 11 months ago

Hi @Chris-N-K I think I managed to find some hints where the problems with plotting could be. I have explored only plotting in ROI mode and could finally create traces although they layout is gone. here is an example.

image

this is using napari =0.4.18, napari-matplotlib =1.0.0 and a fork of your current TSP widget 76f15a8

I found that apparently there is a problem with the variable self.layers from the class VoxelPlotter. I renamed it and seems to be ok now, although this allow plotting in ROI mode, no sure if this is a problem actually directly related with the napari-matplotlib. still is not perfect since, as I said the layout has to be fixed and the other plot modes (voxel and points) need to be debugged yet :/

I will create a pull request so you can quickly look at the changes I mean here and test it yourself.

Cheers

Chris-N-K commented 9 months ago

@rjlopez2 thanks for your work, as mentioned in your pull request I took your input and fixed this issue while reworking nearly the entire plugin. I will close this issue when the changes go live.

Best, Chris