Subplot x-axis shared with other subplots y-axis

Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
jni
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Subplot x-axis shared with other subplots y-axis

jni
Hello,

I’m trying to build an orthogonal-views volume viewer in Matplotlib like this one:

For this to work, I need to share the y-axis of the YZ (right) view/subplot with the x-axis of the XZ (bottom) view/subplot. Is this possible?

Juan.


_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Subplot x-axis shared with other subplots y-axis

tcaswell
There are callbacks that fire when the limits are changed.  See


for an example.

This is probably the best route to go down as you can do other interesting things as the event goes by (like triggering computation, updating a openGL view window, etc) as well as updating the Matplotlib limits.

Tom

On Mon, May 15, 2017 at 3:29 AM Juan Nunez-Iglesias <[hidden email]> wrote:
Hello,

I’m trying to build an orthogonal-views volume viewer in Matplotlib like this one:

For this to work, I need to share the y-axis of the YZ (right) view/subplot with the x-axis of the XZ (bottom) view/subplot. Is this possible?

Juan.

_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users

_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users
jni
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Subplot x-axis shared with other subplots y-axis

jni
Hey Tom,

Thanks for that response, it was just what I needed! I had a fun infinite loop where the x-axis was updating the y-axis which was updating the x-axis which... =P But it was easy enough to sort out. =)

I have a working orthogonal slice viewer here:

The problem I have now is that, if I set a mouse-click callback (this line and this line), and then I select any other tool from the toolbar, I get this super-obnoxious flickering, recorded here (macOS 10.12, Tk backend):
https://www.dropbox.com/s/qvfmgp0x36p6rb9/mpl-click-bug.mov?dl=0

To reproduce:

- Download slice_view.py and put it in your PYTHONPATH or current working directory
- Download this example dataset: 
https://www.dropbox.com/s/dj3oarx7bqx4us2/E_z2_512_1um_CONTROL.tif?dl=1
- Run this code:

import matplotlib
matplotlib.use('TkAgg')

from skimage import io
import slice_view as sv

filename = '/path/to/E_z2_512_1um_CONTROL.tif'
image = io.imread(filename) / 4096

v = sv.SliceViewer(image, spacing=[5, 1, 1])
matplotlib.pyplot.show(block=True)

Questions:
1) Any ideas about how to fix the flickering?
2) Is there a cross-backend way to add buttons to the toolbar? All the examples I've found online were backend-specific. (This way I could at least disable the callback at will.)

Thanks!

Juan.

On 16 May 2017, 1:43 AM +1000, Thomas Caswell <[hidden email]>, wrote:
There are callbacks that fire when the limits are changed.  See


for an example.

This is probably the best route to go down as you can do other interesting things as the event goes by (like triggering computation, updating a openGL view window, etc) as well as updating the Matplotlib limits.

Tom

On Mon, May 15, 2017 at 3:29 AM Juan Nunez-Iglesias <[hidden email]> wrote:
Hello,

I’m trying to build an orthogonal-views volume viewer in Matplotlib like this one:

For this to work, I need to share the y-axis of the YZ (right) view/subplot with the x-axis of the XZ (bottom) view/subplot. Is this possible?

Juan.

_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users

_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users
Loading...