2013-09-24 64 views
2

文字,我想对齐Text()实例与colorbar实例底部边缘的底部边缘,但它不工作我所期望的方式:对齐matplotlib用彩条

我获得彩条ÿ位置使用cb.ax.get_position().ymin,然后设置我的文字对象的y位置,像这样:

cb = plt.colorbar(mappable, shrink=0.5) 

details = plt.text(
    1., 1., 
    "Text", 
    ha='right', va='bottom', 
    size=5, 
    color='#555555', 
    transform=ax.transAxes, 
    fontdict={ 
     'family': 'Helvetica', 
     'size': 6}) 
details.set_y(cb.ax.get_position().ymin) 

我试着改变va,但两者从未对齐:使用va=bottom文本中间似乎与对齐彩条的中间;使用va=center,文本框ymin低于(明显的)cb ymin。获取和设置坐标的最佳方法是什么?

回答

3

这个怎么样,只是直接打印到cb.ax

>>> x=linspace(-4,4) 
>>> y=linspace(-4,4) 
>>> g=meshgrid(x,y) 
>>> z=g[0]**2+5*g[1] 
>>> ctf=plt.contourf(x, y, z) 
>>> cb=plt.colorbar(ctf, shrink=0.5) 
>>> cb.ax.text(0.5, 0, 'text', va='top', ha='center') 
<matplotlib.text.Text object at 0x9173670> 

enter image description here