>>>>> "Kilian" == Kilian Hagemann <hagemann1@...> writes:
Kilian> Dear developers, On Monday I sent an email to the
Kilian> matplotlib-users list
Kilian> asking if it was possible to have a 'centered' axis.
Kilian> As I received no reply and couldn't find any other info, I
Kilian> assume that this functionality is not present in
Kilian> 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
Kilian> Cause if the lines of the x and y axis can only be plotted
Kilian> on the lower/left edge of the axes/subplot I'd be keen to
Kilian> enhance the code to make this flexible. Seems like I'd be
Kilian> targeting axes.py and axis.py, but I'd also have to know
Kilian> how this is done in Matlab to keep compatibility (I did
Kilian> 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.