Possible Duplicate:
Is there a way of drawing a caption box in matplotlib可能重复:有没有办法在matplotlib中绘制标题框
Is it possible to add graph description under graph in pylab?
是否可以在pylab中的图形下添加图形描述?
Let's say that I plot the following graph:
假设我绘制了下图:
import pylab
x = [1,2,3,2,4,5,6,4,7,8]
pylab.plot(x)
pylab.title('My Plot')
pylab.xlabel('My x values')
pylab.ylabel('My y values')
pylab.show()
I also want to insert a few lines that describe the graph, perhaps something like this (not real code):
我还想插入一些描述图形的行,也许是这样的(不是真正的代码):
pylab.description('Figure 1.1 is designed for me to learn basics of Pylab')
Is that possible?
那可能吗?
Also, I am vague on differences between pylab
and matplotlib
, so if there is a solution that works when using matplotlib
, it will probably work.
另外,我对pylab和matplotlib之间的差异很模糊,所以如果有一个解决方案在使用matplotlib时有效,它可能会起作用。
Thank You in Advance
先谢谢你
1 个解决方案
#1
17
figtext
is useful for this since it adds text in the figure coordinates, that is, 0 to 1 for x and y, regardless of the axes. Here's an example:
figtext对此很有用,因为它在图形坐标中添加文本,即x和y为0到1,无论轴是什么。这是一个例子:
from pylab import *
figure()
gca().set_position((.1, .3, .8, .6)) # to make a bit of room for extra text
plot([1,2], [3,4])
figtext(.95, .9, "This is text on the side of the figure", rotation='vertical')
figtext(.02, .02, "This is text on the bottom of the figure.\nHere I've made extra room for adding more text.\n" + ("blah "*16+"\n")*3)
xlabel("an interesting axis label")
show()
Here I've used axes.set_position()
to make some extra room on the bottom of the figure by making the axes a bit smaller. Here I added room for lots of text and also so the text doesn't bump into the axes label, though it's probably a bit excessive.
在这里,我使用axes.set_position()通过使轴稍微变小来在图的底部创建一些额外的空间。在这里,我为大量文本添加了空间,因此文本没有碰到轴标签,尽管它可能有点过分。
Although you asked for text on the bottom, I usually put such labels on the side, so they are more clearly notes and not part of the figure. (I've found it useful, for example, to have a little function that automatically puts the name of the file that generated each figure onto the figure.)
虽然您在底部要求提供文字,但我通常会将这些标签放在一边,因此它们更清晰,而不是图中的一部分。 (例如,我发现它有用的功能可以自动将生成每个图形的文件名放到图上。)
#1
17
figtext
is useful for this since it adds text in the figure coordinates, that is, 0 to 1 for x and y, regardless of the axes. Here's an example:
figtext对此很有用,因为它在图形坐标中添加文本,即x和y为0到1,无论轴是什么。这是一个例子:
from pylab import *
figure()
gca().set_position((.1, .3, .8, .6)) # to make a bit of room for extra text
plot([1,2], [3,4])
figtext(.95, .9, "This is text on the side of the figure", rotation='vertical')
figtext(.02, .02, "This is text on the bottom of the figure.\nHere I've made extra room for adding more text.\n" + ("blah "*16+"\n")*3)
xlabel("an interesting axis label")
show()
Here I've used axes.set_position()
to make some extra room on the bottom of the figure by making the axes a bit smaller. Here I added room for lots of text and also so the text doesn't bump into the axes label, though it's probably a bit excessive.
在这里,我使用axes.set_position()通过使轴稍微变小来在图的底部创建一些额外的空间。在这里,我为大量文本添加了空间,因此文本没有碰到轴标签,尽管它可能有点过分。
Although you asked for text on the bottom, I usually put such labels on the side, so they are more clearly notes and not part of the figure. (I've found it useful, for example, to have a little function that automatically puts the name of the file that generated each figure onto the figure.)
虽然您在底部要求提供文字,但我通常会将这些标签放在一边,因此它们更清晰,而不是图中的一部分。 (例如,我发现它有用的功能可以自动将生成每个图形的文件名放到图上。)