Hi,

I just noticed a bug in twinx/twiny in axes.py. twinx has:

ax2 = self.figure.add_axes(self.get_position(True), # sharex=self,

frameon=False)

while twiny has:

ax2 = self.figure.add_axes(self.get_position(True), sharey=self,

frameon=False)

Therefore twiny will share the y axis, while twinx will not share the x

axis. I am not sure what the "desired" behavior is, but one has to be

wrong. As the principle use for this is making plots of two curves

sharing one axis, but different in the other, I imagine that the twiny

behavior is the desired one. If not, then the following doesn't look

quite right:

from numpy import *

from matplotlib.pylab import *

x = linspace(0,pi,20)

y = sin(x)

x2 = x + 0.1 * randn(*x.shape)

y2 = 10 + y + 0.1 * randn(*y.shape)

a1 = gca()

plot(x,y)

a2 = twinx()

plot(x2,y2, 'o')

The pylab_examples/two_scales.py only works because the two curves have

identical x values.

However, forcing them to share has the undesirable consequence that both

x-axes must have the same labels and formatting, producing overlayed

labels that are slightly noticeable.

I have committed to SVN the change making twinx work like twiny. As an

aside, this would not be necessary if there was an easy after the fact

way of sharing and unsharing axes (i.e., ax.set_shared_x_axes(ax2)).

Cheers,

David

## ···

--

**********************************

David M. Kaplan

Charge de Recherche 1

Institut de Recherche pour le Developpement

Centre de Recherche Halieutique Mediterraneenne et Tropicale

av. Jean Monnet

B.P. 171

34203 Sete cedex

France

Phone: +33 (0)4 99 57 32 27

Fax: +33 (0)4 99 57 32 95

http://www.ur097.ird.fr/team/dkaplan/index.html

**********************************