Matplotlib placement of text e.g. suptitle inside the frame
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.
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!