Pylab/twinx() and Matplotlib API inconsistency

Hello NG,

I am having a couple of problems with Matplotlib embedded in wxPython; both
are related to the Pylab twinx() function and its corresponding Matplotlib
API call.

Problem 1:
Using the following script:

···

----------------------------------------------
#!/usr/bin/env python

from pylab import *

ax1 = subplot(111)
t = arange(0.01, 10.0, 0.01)
s2 = sin(2*pi*t)
plot(t, s2, 'r.')
ylabel('sin')

# turn off the 2nd axes rectangle with twinx()
ax2 = twinx()
s1 = exp(t)
plot(t, s1, 'b-')
xlabel('time (s)')
ylabel('exp')

show()
----------------------------------------------

Everything works fine but the exponential factor for which the right axis
scale is multiplied ("x1e4") is positioned on the left axis, which is
clearly misleading.

Problem 2:

Using the corresponding Matplotlib API calls to use twinx() embedded in
wxPython, the same problem as above appears *and* the ylabel for the right
axis is positioned on the left axis instead: so I end up with 2 ylabels on
the same axis. The script I am running is this one:

----------------------------------------------
#!/usr/bin/env python

import wx

import matplotlib

matplotlib.use('WXAgg')

from matplotlib.backends.backend_wxagg import \
     FigureCanvasWxAgg as FigureCanvas
from matplotlib.figure import Figure
from matplotlib.numerix import arange, sin, exp, pi

# wxPython part
app = wx.PySimpleApp()
frame = wx.Frame(None, -1, "MPL Test", (400, 400))

fig = Figure()
canvas = FigureCanvas(frame, -1, fig)

sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(canvas, 1, wx.LEFT|wx.TOP|wx.GROW)
frame.SetSizer(sizer)
sizer.Layout()

# Plotting part: Left Axis
leftaxis = fig.add_subplot(111)
leftaxis.yaxis.tick_left()

t = arange(0.01, 10.0, 0.01)
s2 = sin(2*pi*t)
leftaxis.plot(t, s2, 'r.')
leftaxis.set_ylabel('sin')

# Plotting part: Left Axis
rightaxis = fig.add_subplot(111, frameon=False)
rightaxis.yaxis.tick_right()

s1 = exp(t)
rightaxis.plot(t, s1, 'b-')
rightaxis.set_xlabel('time (s)')
rightaxis.set_ylabel('exp')

# wxPython starts
frame.CenterOnScreen()
frame.Show()

app.MainLoop()

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

If that matters, I am using Matplotlib 0.86.2 on Windows XP/2000, Python
2.4.1, wxPython 2.6.2.1.

Thanks in advance for every hint.

Andrea.

"Imagination Is The Only Weapon In The War Against Reality."
http://xoomer.virgilio.it/infinity77