matplotlib write text in the margin


Question

If I make a graph using pylab from matlotlib like so...

import pylab as p
x = [0,1,2]
y = [2,4,6]
p.plot(x,y)
p.show()

I want to use the p.text function to add text to the graph. However, I want to put the text in the margin outside of the data window. The text function only accepts x,y coordinates that correspond to the data points rather than absolute x,y pixels coordinates of the entire window. Any idea how I can write text in the margins?

1
13
3/28/2011 7:53:02 PM

Accepted Answer

You can use the figtext function. Only note that the coordinates are 0-1, so something like the following places text to the left of the vertical axis:

p.figtext(0.05, 0.5, 'foo')

See the linked docs for more information.

24
3/28/2011 8:11:19 PM

If you're not using the pyplot mode and instead want to do this in an object-orientated method you can do the following:

text.set_transform(fig.transFigure)

Where text is a matplotlib.text.Text object and fig is a matplotlib.figure.Figure object.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon