Matplotlib placement of text e.g. suptitle inside the frame

自古美人都是妖i 提交于 2019-12-03 10:52:18

问题


So far i have placed my suptitles above the frame, like this:

How can i get the suptitles from above the frame into the frame?

So far i have a solution that just prints a text and sets it on the right position with computing xlim and ylim. However this is errorprone and if the text is different it just looks aweful. Is there a way to set the suplabel into the frame? Or just place text below the frame and centered? it would be really convenient, if i did not need to know about the data that is displayed inside the frame.


回答1:


Your solution using text is also my go-to solution. However, you don't need to compute the position based on xlim and ylim. If you set transform=ax.transAxes the coordinates for positioning the text are taken as being relative to the axes bounding box (0,0 being the lower left corner). Like so:

data = range(1,10);
fig = figure()
for i in range(6):
    ax = fig.add_subplot(2,3,i)

    ax.text(.5,.9,'centered title',
        horizontalalignment='center',
        transform=ax.transAxes)

    ax.plot(data)
show()

Hope that helps!




回答2:


Have you considered axes.title? You can see the documentation for it here. You can also pass x and y coordinates as keyword arguments ax.title("my title", x=0.5, y=0.6).

Hope this helps.



来源:https://stackoverflow.com/questions/12957801/matplotlib-placement-of-text-e-g-suptitle-inside-the-frame

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!