Thanks for the suggestions, 'annotate' is what I need, I think.

I get errors though, also when I run the example scripts

from here:

http://matplotlib.sourceforge.net/trunk-docs/users/annotations_guide.html#using-complex-coordinate-with-annotation .

I get the error 'NoneType' object is not iterable when I try plt.show()

or try to save to eps.

So I am not sure if I have the correct version of matplotlib installed.

I checked out the newest matplotlib from the svn repository, removed my

current installed version and installed the version in the 'trunk/'

directory. 'annotate' did not work.

Later, I installed matplotlib from the '/branches/v0_99_maint'

directory.

In both cases there were no errors in the installation, but still

'annotate' did not work.

Could it be that I have the wrong library from the svn repository

installed? Does r8319 mean release #8319?

Kind Regards

Hannes

This can be done relatively easily with the current svn version of

matplotlib (r8319).

Below is the modified version of your code.See

for how the annotation works.

While this is certainly possible with the released version, but it

will require you to write a few tens of lines of code. Basically, you

need create a custom Text class that update its position during the

drawing time.Regards,

-JJ

###Code

import scipy

import matplotlib.pyplot as pltfig = plt.figure()

ax = fig.add_subplot(121)

plt.plot(scipy.sin(scipy.arange(1,100, 0.001)))

plt.xlabel('xlabel')

yl = plt.ylabel("ylabel")plt.annotate("A", (0,1.), xycoords=(yl, "axes fraction"),

xytext=(0, 14), textcoords="offset points",

fontsize=14)ax = fig.add_subplot(122)

plt.plot(scipy.cos(scipy.arange(1,100, 0.001)))

plt.xlabel('xlabel')my_ticklabel = ax.get_yticklabels()[-2]

# Note that there is no guarantee that all ticklabels are drawn.

plt.annotate("B", (0,1.), xycoords=(my_ticklabel, "axes fraction"),

xytext=(0, 14), textcoords="offset points",

fontsize=14)###End Code

> Dear all,

>

> I'm struggling with the following problem plotting my data:

>

> I have a figure with two panels next to each other, which I want to

> label 'A' and 'B'. I want to left-justify my panel labels, but not

to

> the box that contains the plot, but to the y-axis label. I played

around

> with 'text()' and 'title()', but did not find a good solution except

for

> giving the coordinates manually to 'text()'. This would be very

> inconvenient though, because I have many different plots on

different

> scales.

> Here is what I tried:

>

> ###Code

> import scipy

> import matplotlib.pyplot as plt

>

> fig = plt.figure()

> ax = fig.add_subplot(121)

> plt.plot(scipy.sin(scipy.arange(1,100, 0.001)))

> plt.xlabel('xlabel')

> plt.ylabel("ylabel")

> plt.text(0,1,"A", fontsize=14, transform=ax.transAxes)

>

> ax = fig.add_subplot(122)

> plt.plot(scipy.cos(scipy.arange(1,100, 0.001)))

> plt.text(0,1,"B", fontsize=14, transform=ax.transAxes)

> plt.xlabel('xlabel')

> ###End Code

>

> So the texts 'A' and 'B' should be a little bit higher and more to

the

> left. The 'A' I want to align with the y-axis label of the left

plot,

## ···

On Tue, 2010-05-18 at 13:34 -0400, Jae-Joon Lee wrote:

On Mon, May 17, 2010 at 11:08 AM, hettling <hettling@...3062...> wrote:

> the 'B' with the values of the y-axis of the right plot.

>

> I hope my question is clear, I will appreciate any help!

>

> Thanks in advance,

>

> Hannes

>

>

>

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

>

> _______________________________________________

> Matplotlib-users mailing list

> Matplotlib-users@lists.sourceforge.net

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

>