update x axis of a subplot according to the y axis of another one in python/matplotlib

I would like to plot an orthogonal projection (like this one http://i.stack.imgur.com/DnNds.jpg )
using matplotlib possibly including also the 3D subplot. All the
pictures should share common axes.

fig = plt.figure()
ax = fig.add_subplot(221, title="XZ")
bx = fig.add_subplot(222, title="YZ", sharey=ax)
cx = fig.add_subplot(223, title="XY", sharex=ax, sharey=[something like bx.Xaxis])
dx = fig.add_subplot(224, title="XYZ", projection="3d", sharex=ax, sharey=bx, sharez=[something like bx.Yaxis]
    The problem is that I have to "link" on X axis of a plot with

the Y one of another and
Is there a way to accomplish this?

Thanks

    Alessandro

    p.s. i have posted this question also on StackOverflow:
···

http://stackoverflow.com/questions/28239054/update-x-axis-of-a-subplot-according-to-the-y-axis-of-another-one-in-python-matp

Sounds to me like you want to use glue: http://www.glueviz.org/en/stable/

···

On Wed, Feb 11, 2015 at 3:15 AM, Alessandro Pietro Bardelli <alessandro.bardelli@…1243…> wrote:

I would like to plot an orthogonal projection (like this one http://i.stack.imgur.com/DnNds.jpg )
using matplotlib possibly including also the 3D subplot. All the
pictures should share common axes.

fig = plt.figure()
ax = fig.add_subplot(221, title="XZ")
bx = fig.add_subplot(222, title="YZ", sharey=ax)
cx = fig.add_subplot(223, title="XY", sharex=ax, sharey=[something like bx.Xaxis])
dx = fig.add_subplot(224, title="XYZ", projection="3d", sharex=ax, sharey=bx, sharez=[something like bx.Yaxis]
    The problem is that I have to "link" on X axis of a plot with

the Y one of another and
Is there a way to accomplish this?

Thanks

    Alessandro


    p.s. i have posted this question also on StackOverflow:

http://stackoverflow.com/questions/28239054/update-x-axis-of-a-subplot-according-to-the-y-axis-of-another-one-in-python-matp


Dive into the World of Parallel Programming. The Go Parallel Website,

sponsored by Intel and developed in partnership with Slashdot Media, is your

hub for all things parallel software development, from weekly thought

leadership blogs to news, videos, case studies, tutorials and more. Take a

look and join the conversation now. http://goparallel.sourceforge.net/


Matplotlib-devel mailing list

Matplotlib-devel@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Thanks for the answer.
Glue seems a quite cool project but it is also a bit overkill for
this specific task, isn’t it?
Basically I just would like tell sharex to point the Yaxis of the
axes object.
Isn’t there a way to do this within matplotlib?
thanks

Alessandro
···

On 11/02/2015 16:41, Benjamin Root
wrote:

Sounds to me like you want to use glue: http://www.glueviz.org/en/stable/

      On Wed, Feb 11, 2015 at 3:15 AM,

Alessandro Pietro Bardelli <alessandro.bardelli@…1243…>
wrote:

              I would like to plot an orthogonal projection (like

this one http://i.stack.imgur.com/DnNds.jpg )
using matplotlib possibly including also the 3D
subplot. All the pictures should share common axes.

fig = plt.figure()
ax = fig.add_subplot(221, title="XZ")
bx = fig.add_subplot(222, title="YZ", sharey=ax)
cx = fig.add_subplot(223, title="XY", sharex=ax, sharey=[something like bx.Xaxis])
dx = fig.add_subplot(224, title="XYZ", projection="3d", sharex=ax, sharey=bx, sharez=[something like bx.Yaxis]
              The problem is that I have to "link" on X axis of a

plot with the Y one of another and
Is there a way to accomplish this?

Thanks

                  Alessandro


              p.s. i have posted this question also on

StackOverflow:
http://stackoverflow.com/questions/28239054/update-x-axis-of-a-subplot-according-to-the-y-axis-of-another-one-in-python-matp


        Dive into the World of Parallel Programming. The Go Parallel

Website,

        sponsored by Intel and developed in partnership with

Slashdot Media, is your

        hub for all things parallel software development, from

weekly thought

        leadership blogs to news, videos, case studies, tutorials

and more. Take a

        look and join the conversation now. [http://goparallel.sourceforge.net/](http://goparallel.sourceforge.net/)

        _______________________________________________

        Matplotlib-devel mailing list

        Matplotlib-devel@lists.sourceforge.net

        [https://lists.sourceforge.net/lists/listinfo/matplotlib-devel](https://lists.sourceforge.net/lists/listinfo/matplotlib-devel)

  ----------------------------------

  Alessandro Pietro Bardelli

  HENESIS s.r.l.

  P.IVA (VAT. N.) IT02280660354

  Viale dei Mille, 108

  43125 PARMA (IT)

  Email: Tel: (+39)05211854211

Fax: (+39)05211854515
SkypeID: henesis_srl
Web: ----------------------------------

alessandro.bardelli@…1243…

www.henesis.eu

Sharing the same axis across subplots is implemented via matplotlib’s interactive framework, and is available by default. Glue is built on top of matplotlib, extending its interactive framework with many additional tools. Yes, it might be overkill for this singular task, but implementing orthogonal axis sharing isn’t trivial, either, so suggesting a pre-packaged solution is merely pragmatic.

Essentially, one would have to register callbacks for changes in each of the parent subplot’s axis. This, in of itself, isn’t really all that difficult once one learns the event framework. I think what might be very tricky is doing it for the 3d axes. As the de facto maintainer of mplot3d, I have never really tested axis sharing for mplot3d. I suspect that it would work exactly as you’d expect for the x and y axes, but the z axis may prove to be quirky. I don’t know, I haven’t ever tried it out. In general, the z-axis implementation is a bit of a kludge, so things tend to be different for it…

Here is an example of how to register callbacks to changes in a particular axis. Hopefully, it can give you a nice leg up on the problem. Let me know if you have problems with the z-axis, I might be able to help sort it out. If you can get this to work, I would certainly love to include it in the gallery.
http://matplotlib.org/examples/event_handling/viewlims.html

Cheers!

Ben Root

···

On Thu, Feb 12, 2015 at 4:32 AM, Alessandro Pietro Bardelli <alessandro.bardelli@…1243…> wrote:

Thanks for the answer.

Glue seems a quite cool project but it is also a bit overkill for

this specific task, isn’t it?

Basically I just would like tell sharex to point the Yaxis of the

axes object.

Isn't there a way to do this within matplotlib?

thanks



Alessandro

  On 11/02/2015 16:41, Benjamin Root

wrote:

Sounds to me like you want to use glue: http://www.glueviz.org/en/stable/

  ----------------------------------


  Alessandro Pietro Bardelli




  HENESIS s.r.l.


  P.IVA (VAT. N.) IT02280660354


  Viale dei Mille, 108


  43125 PARMA (IT)




  Email: alessandro.bardelli@...1243...




  Tel: (+39)05211854211


  Fax: (+39)05211854515


  SkypeID: henesis_srl


  Web: [www.henesis.eu](http://www.henesis.eu)


  ----------------------------------
      On Wed, Feb 11, 2015 at 3:15 AM,

Alessandro Pietro Bardelli <alessandro.bardelli@…552…1243…>
wrote:

              I would like to plot an orthogonal projection (like

this one http://i.stack.imgur.com/DnNds.jpg )
using matplotlib possibly including also the 3D
subplot. All the pictures should share common axes.

fig = plt.figure()
ax = fig.add_subplot(221, title="XZ")
bx = fig.add_subplot(222, title="YZ", sharey=ax)
cx = fig.add_subplot(223, title="XY", sharex=ax, sharey=[something like bx.Xaxis])
dx = fig.add_subplot(224, title="XYZ", projection="3d", sharex=ax, sharey=bx, sharez=[something like bx.Yaxis]
              The problem is that I have to "link" on X axis of a

plot with the Y one of another and
Is there a way to accomplish this?

Thanks

                  Alessandro


              p.s. i have posted this question also on

StackOverflow:
http://stackoverflow.com/questions/28239054/update-x-axis-of-a-subplot-according-to-the-y-axis-of-another-one-in-python-matp


        Dive into the World of Parallel Programming. The Go Parallel

Website,

        sponsored by Intel and developed in partnership with

Slashdot Media, is your

        hub for all things parallel software development, from

weekly thought

        leadership blogs to news, videos, case studies, tutorials

and more. Take a

        look and join the conversation now. [http://goparallel.sourceforge.net/](http://goparallel.sourceforge.net/)

        _______________________________________________

        Matplotlib-devel mailing list

        Matplotlib-devel@lists.sourceforge.net

        [https://lists.sourceforge.net/lists/listinfo/matplotlib-devel](https://lists.sourceforge.net/lists/listinfo/matplotlib-devel)