我使用matplotlib绘制具有四个子图的图形,(a) (b) (c) (d)
方法将标题(
fig = pyplot.figure()
)放在每个子图的顶部,请参阅以下代码示例。
ax = fig.add_subplot(1, 4, 1)
ax.set_title('(a)')
var error
但我想把每个标题放在每个子图的底部。我无法通过matplotlib文档和谷歌来弄清楚它。所以我需要你的帮助,非常感谢。
答案 0 :(得分:5)
由于您不使用x轴,您只需将xlabel设置为标题,就应该注意定位:
ax.set_xlabel('this really is a title disguised as an x label')
修改强>
尝试根据图形高度偏移标题,我希望这有效:
size = fig.get_size_inches()*fig.dpi # get fig size in pixels
ax.set_title('(a)', y=-size) # increase or decrease y as needed
答案 1 :(得分:3)
这是一个小的python函数,可以绘制没有轴的图像。每个子图像底部的标题。 images 是一个n长度的数组,内存中的图像和标签是一个带有相应标题的n长度数组:
from matplotlib import pyplot
def plot_image_array_gray(images, labels):
for i in range(0, len(labels)):
ax = pyplot.subplot(1, len(labels), i + 1)
pyplot.axis('off')
pyplot.text(0.5, -0.1, labels[i], \
horizontalalignment='center', verticalalignment='center', \
transform=ax.transAxes)
pyplot.imshow(images[i], cmap=pyplot.cm.gray)
pyplot.tight_layout()
pyplot.show()
使用示例
# code to load image_a and image_b
# ...
plot_image_array_gray((image_a, image_b), ("(a)", "(b)"))
答案 2 :(得分:0)
如果您使用的是 ax,请使用以下行,然后调整 'y' 的值。
ax.set_title('(d)',y=-0.2,pad=-14)
您可以调整 y 值,这里我使用“负”值,因为我希望我的标签位于子图中的图形底部。
我还没有检查pad是什么。