我想在文本框中放置关键字参数,例如与图例' loc'选项,即'左上角','右上角','右下角','左下角'。 基本目的是将文本框与图例对齐。 我在这里找到了一个建议:automatically position text box in matplotlib但是它仍然使用我必须使用的坐标来获得我想要的东西,特别是如果我想把它放在绘图区域的右边,这取决于文本的长度在盒子里。除非我可以将文本框的右角之一设置为坐标的参考。
答案 0 :(得分:3)
您可以使用matplotlib的AnchoredText执行此操作。如下所示:
automatically position text box in matplotlib
简而言之:
from matplotlib.offsetbox import AnchoredText
anchored_text = AnchoredText("Test", loc=2)
ax.plot(x,y)
ax.add_artist(anchored_text)
每个loc号对应于轴内的位置,例如loc = 2是"左上"。完整的职位列表如下:http://matplotlib.org/api/offsetbox_api.html
答案 1 :(得分:1)
如何设置文本相对于图例的位置?诀窍是,要找到图例的位置,首先必须绘制它,然后获取bbox。这是一个例子:
import matplotlib.pyplot as plt
from numpy import random
# Plot some stuff
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(random.rand(10))
# Add a legend
leg = ax.legend('line', loc = 'upper right')
# Draw the figure so you can find the positon of the legend.
plt.draw()
# Get the Bbox
bb = leg.legendPatch.get_bbox().inverse_transformed(ax.transAxes)
# Add text relative to the location of the legend.
ax.text(bb.x0, bb.y0 - bb.height, 'text', transform=ax.transAxes)
plt.show()
另一方面,如果您只需要像右边you can set the horizontal alignment to right那样定义文本的位置:
plt.text(x, y, 'text', ha = 'right')