我正在尝试绘制三张图像,其字幕位于其上方,但现在没有显示任何内容。
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('kids.tif')
# Averaged environment
avg_blur = cv2.blur(img,(5,5))
# Gaussian filter
gauss_blur = cv2.GaussianBlur(img,(0,0),5)
# Median filter
median_blur = cv2.medianBlur(img,5)
f, axarr = plt.subplots(nrows=1,ncols=3)
axarr[0].imshow(img)
axarr[1].imshow(avg_blur)
axarr[2].imshow(gauss_blur)
"""
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(avg_blur),plt.title('Averaged environment')
plt.xticks([]), plt.yticks([])
plt.show()
"""
Run Code Online (Sandbox Code Playgroud) 我想在我试图创建的多个PDF文档的每个页面的左上角对齐我的suptitle,但是,它似乎没有按照我的要求进行操作.下面的脚本在顶部和中心生成suptitle.我无法弄清楚我做错了什么:
import datetime
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.pyplot as plt
pdf = PdfPages('TestPDF.pdf')
Countries = ['Argentina','Australia']
for country in Countries:
fig = plt.figure(figsize=(4, 5))
fig.set_size_inches([10,7])
plt.suptitle(country, horizontalalignment='left', verticalalignment='top', fontsize = 15)
x= 1000
plt.plot(x, x*x, 'ko')
pdf.savefig()
plt.close(fig)
pdf.close()
Run Code Online (Sandbox Code Playgroud)
奇怪的是:
verticalalignment='bottom'
Run Code Online (Sandbox Code Playgroud)
只是将suptitle移动得更高(并略微偏离页面顶部),这让我觉得它是在与页面边缘不同的边界上对齐自己?
我知道我可以用来update调整 matplotlib 图中实例的参数GridSpec,从而允许在单个图中排列多个 gridspec。就像这个例子取自 matplotlib 文档一样
gs1 = gridspec.GridSpec(3, 3)
gs1.update(left=0.05, right=0.48, wspace=0.05)
ax1 = plt.subplot(gs1[:-1, :])
ax2 = plt.subplot(gs1[-1, :-1])
ax3 = plt.subplot(gs1[-1, -1])
gs2 = gridspec.GridSpec(3, 3)
gs2.update(left=0.55, right=0.98, hspace=0.05)
ax4 = plt.subplot(gs2[:, :-1])
ax5 = plt.subplot(gs2[:-1, -1])
ax6 = plt.subplot(gs2[-1, -1])
Run Code Online (Sandbox Code Playgroud)
但我怎样才能给两者gs1和gs2他们自己共同的头衔呢?使用suptitle我只能一次获得整个图形的通用标题。