Plotting with more than two y-axes (with twinx?)

Dear all

What I want to accomplish was produced two years ago in a stackoverflow
snippet by Joe Kington
<http://stackoverflow.com/questions/7733693/matplotlib-overlay-plots-with-different-scales>
, and shown in the first figure below. However, when I use his snippet in
matplotlib 1.3.x, I get an output where the third axis replaces the second
axis, and the blue dots are accordingly distributed in only the lower half
of the plot (see second figure below). I considered downdating to an older
version of matplotlib, but then I came across a remark in the matplotlib
FAQ <http://matplotlib.org/faq/howto_faq.html#multiple-y-axis-scales> .
According to this remark, such a feature for twinx is on the wish list and
thus not very likely to be available in an older version.

Can someone please explain the Kington magic to me?

<http://matplotlib.1069221.n5.nabble.com/file/n42556/ksRXk.png>
<http://matplotlib.1069221.n5.nabble.com/file/n42556/figure_1.png>

···

--
View this message in context: http://matplotlib.1069221.n5.nabble.com/Plotting-with-more-than-two-y-axes-with-twinx-tp42556.html
Sent from the matplotlib - users mailing list archive at Nabble.com.

Hi Daniel,

For what it’s worth, the code runs perfectly for me as-is on matplotlib 1.3.1 with python 2.7 on linux.

However, based on your description, I’d guess that the second call to twinx is returning the same axes object.

What happens when you do:

print id(axes[1]), id(axes[2])

Are the id numbers the same or different?

If they’re the same, there may have been a regression/change that causes twinx to return the same object instead of creating a new axes.

Cheers!

-Joe

···

On Wed, Nov 27, 2013 at 5:08 PM, dodermat <dani.odermatt@…287…> wrote:

Dear all

What I want to accomplish was produced two years ago in a stackoverflow

snippet by Joe Kington

<http://stackoverflow.com/questions/7733693/matplotlib-overlay-plots-with-different-scales>

, and shown in the first figure below. However, when I use his snippet in

matplotlib 1.3.x, I get an output where the third axis replaces the second

axis, and the blue dots are accordingly distributed in only the lower half

of the plot (see second figure below). I considered downdating to an older

version of matplotlib, but then I came across a remark in the matplotlib

FAQ <http://matplotlib.org/faq/howto_faq.html#multiple-y-axis-scales> .

According to this remark, such a feature for twinx is on the wish list and

thus not very likely to be available in an older version.

Can someone please explain the Kington magic to me?

<http://matplotlib.1069221.n5.nabble.com/file/n42556/ksRXk.png>

<http://matplotlib.1069221.n5.nabble.com/file/n42556/figure_1.png>

View this message in context: http://matplotlib.1069221.n5.nabble.com/Plotting-with-more-than-two-y-axes-with-twinx-tp42556.html

Sent from the matplotlib - users mailing list archive at Nabble.com.


Rapidly troubleshoot problems before they affect your business. Most IT

organizations don’t have a clear picture of how application performance

affects their revenue. With AppDynamics, you get 100% visibility into your

Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!

http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk


Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

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

Hi Daniel,

For what it's worth, the code runs perfectly for me as-is on matplotlib 1.3.1 with python 2.7 on linux.

Same here for what its' worth:
  OS X 10.9
  python2.7 from Fink
  matplotlib-py27 1.3.0-1 from Fink

-Dale

···

On Nov 27, 2013, at 18:38 , Joe Kington <joferkington@...287...> wrote:

However, based on your description, I'd guess that the second call to `twinx` is returning the same axes object.

What happens when you do:

print id(axes[1]), id(axes[2])

Are the id numbers the same or different?

If they're the same, there may have been a regression/change that causes `twinx` to return the same object instead of creating a new axes.

Cheers!
-Joe

On Wed, Nov 27, 2013 at 5:08 PM, dodermat <dani.odermatt@...287...> wrote:
Dear all

What I want to accomplish was produced two years ago in a stackoverflow
snippet by Joe Kington
<python - Overlay plots with different scales - Stack Overflow;
, and shown in the first figure below. However, when I use his snippet in
matplotlib 1.3.x, I get an output where the third axis replaces the second
axis, and the blue dots are accordingly distributed in only the lower half
of the plot (see second figure below). I considered downdating to an older
version of matplotlib, but then I came across a remark in the matplotlib
FAQ <http://matplotlib.org/faq/howto_faq.html#multiple-y-axis-scales&gt; .
According to this remark, such a feature for twinx is on the wish list and
thus not very likely to be available in an older version.

Can someone please explain the Kington magic to me?

<http://matplotlib.1069221.n5.nabble.com/file/n42556/ksRXk.png&gt;
<http://matplotlib.1069221.n5.nabble.com/file/n42556/figure_1.png&gt;

--
View this message in context: http://matplotlib.1069221.n5.nabble.com/Plotting-with-more-than-two-y-axes-with-twinx-tp42556.html
Sent from the matplotlib - users mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
matplotlib-users List Signup and Options

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
matplotlib-users List Signup and Options

Hi Dani,

A quick thought. You could do an interactive multiple axes graph with Plotly, either with the Python API or from the GUI. Here’s an example of how to re-make that one with Plotly and IPython.

The Notebook is here (and a Notebook here demos multiple axes, subplots, and insets).

Let me know if I can help with anything. Also, disclosure: I’m on the Plotly team.

All my best,

Matt

···

On Wed, Nov 27, 2013 at 4:44 PM, Dale Chayes <dale@…3832…> wrote:

On Nov 27, 2013, at 18:38 , Joe Kington <joferkington@…287…> wrote:

Hi Daniel,

For what it’s worth, the code runs perfectly for me as-is on matplotlib 1.3.1 with python 2.7 on linux.

Same here for what its’ worth:

    OS X 10.9

    python2.7                           from Fink

    matplotlib-py27 1.3.0-1      from Fink

-Dale

However, based on your description, I’d guess that the second call to twinx is returning the same axes object.

What happens when you do:

print id(axes[1]), id(axes[2])

Are the id numbers the same or different?

If they’re the same, there may have been a regression/change that causes twinx to return the same object instead of creating a new axes.

Cheers!

-Joe

On Wed, Nov 27, 2013 at 5:08 PM, dodermat <dani.odermatt@…287…> wrote:

Dear all

What I want to accomplish was produced two years ago in a stackoverflow

snippet by Joe Kington

<http://stackoverflow.com/questions/7733693/matplotlib-overlay-plots-with-different-scales>

, and shown in the first figure below. However, when I use his snippet in

matplotlib 1.3.x, I get an output where the third axis replaces the second

axis, and the blue dots are accordingly distributed in only the lower half

of the plot (see second figure below). I considered downdating to an older

version of matplotlib, but then I came across a remark in the matplotlib

FAQ <http://matplotlib.org/faq/howto_faq.html#multiple-y-axis-scales> .

According to this remark, such a feature for twinx is on the wish list and

thus not very likely to be available in an older version.

Can someone please explain the Kington magic to me?

<http://matplotlib.1069221.n5.nabble.com/file/n42556/ksRXk.png>

<http://matplotlib.1069221.n5.nabble.com/file/n42556/figure_1.png>

View this message in context: http://matplotlib.1069221.n5.nabble.com/Plotting-with-more-than-two-y-axes-with-twinx-tp42556.html

Sent from the matplotlib - users mailing list archive at Nabble.com.


Rapidly troubleshoot problems before they affect your business. Most IT

organizations don’t have a clear picture of how application performance

affects their revenue. With AppDynamics, you get 100% visibility into your

Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!

http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk


Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

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


Rapidly troubleshoot problems before they affect your business. Most IT

organizations don’t have a clear picture of how application performance

affects their revenue. With AppDynamics, you get 100% visibility into your

Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!

http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk_______________________________________________

Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

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


Rapidly troubleshoot problems before they affect your business. Most IT

organizations don’t have a clear picture of how application performance

affects their revenue. With AppDynamics, you get 100% visibility into your

Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!

http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk


Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

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

Joe's guess was right, I got identical IDs for all twinx().

I had OSX10.9, matplotlib 1.3.x and tried both Python 2.7 and 3.3. A friend
of mine has Win7, matplotlib 1.2.0 and Pyhton 3.3, and also encountered the
problem I described. Even the comments by Damian and Lunayo on Joe's snippet
in Stackoverflow indicate that they had the same issue.

I renewed all my package installations in order to get matplotlib 1.3.1 and
have an environment that is similar to Dale's. Now I get the proper output
with both Python 2.7 and 3.3. Problem solved - yet not understood...

Thank you for your help!

···

--
View this message in context: http://matplotlib.1069221.n5.nabble.com/Plotting-with-more-than-two-y-axes-with-twinx-tp42556p42560.html
Sent from the matplotlib - users mailing list archive at Nabble.com.