Dear developers, On Monday I sent an email to the
> matplotlib-users list
> asking if it was possible to have a 'centered' axis.
> As I received no reply and couldn't find any other info, I
> assume that this functionality is not present in
> matplotlib-0.84. Am I right or is there a way?
Sorry. I answered this question quite recently in another thread
shows a hackish way that doesn't give you ticks
> Cause if the lines of the x and y axis can only be plotted
> on the lower/left edge of the axes/subplot I'd be keen to
> enhance the code to make this flexible. Seems like I'd be
> targeting axes.py and axis.py, but I'd also have to know
> how this is done in Matlab to keep compatibility (I did
> Matlab 6 years ago and don't remember anything).
This would be a very nice feature and one I and others have been
wanting for a long time. axes.py and axis.py are the right modules to
look into. I don't know how matlab does it; it is a good idea to look
into this for inspiration and API compatibility but we don't need to
follow their implementation slavishly if there is a better one.
I don't think it would be a lot of work to do this. You will want to
make the edgecolor and facecolor of the axes patch the same as
indicated in the thread above, and the add a Line2D to the XAxis and
YAxis classes, and support placing them at an arbitrary location. The
only tricky bit is that the axis classes work with some of the darker
matplotlib transformation magic, which is hard for most people to
understand because I do transformations in a nonstandard way.
Nonetheless, they are reasonably well documented in the class
I think it would be useful to support multiple axis lines per axes (eg
two y scales). Chaco makes the axis a line property which is fairly
different from the matplotlib approach but makes it easy to do things
like drag a line from one axes to another with the axis coming along
with it. Not sure if this is the right approach or not.
Good luck! Please keep us posted with implementation ideas and feel
free to ask a lot of questions.