Is there a way to make local titles using subplot2grid in Python
matplotlib, python, subplot
Solution
You can add titles to each sub plot using the set_title() method of the axes. Each title will still be display above the axis. If you want text below the axis, you could use set_xlabel. For example:
import pylab as plt
ax1 = plt.subplot2grid((3,3), (0,0), colspan=3)
ax2 = plt.subplot2grid((3,3), (1,0), colspan=2)
ax3 = plt.subplot2grid((3,3), (1, 2), rowspan=2)
ax4 = plt.subplot2grid((3,3), (2, 0))
ax5 = plt.subplot2grid((3,3), (2, 1))
# add titles to subplots
ax2.set_title('plot 2')
ax3.set_title('plot 3')
# add x-label to subplot
ax1.set_xlabel('plot 1 x-label')
# add y-label to subplot
ax1.set_ylabel('y-label')
plt.tight_layout()
plt.show()
You can also use figtext to add a new title like this:
# add Text
pos = ax1.get_position()
x = pos.x0 + 0.35
y = pos.y0
plt.figtext(x,y,'new title')
plt.tight_layout()
plt.show()
Problem
I'm using suplot2grid like in the example in the matplotlib page: ``` ax1 = plt.subplot2grid((3,3), (0,0), colspan=3) ax2 = plt.subplot2grid((3,3), (1,0), colspan=2) ax3 = plt.subplot2grid((3,3), (1, 2), rowspan=2) ax4 = plt.subplot2grid((3,3), (2, 0)) ax5 = plt.subplot2grid((3,3), (2, 1)) plt.suptitle("subplot2grid") ``` Is there a way to make a local subtitle below ax1, instead of the global one on top of it? Thanks