我已经解决这个问题很长时间了,但我无法找到答案。
所以,我有一个要绘制的矩阵列表(为了这个问题,我只有 2 个随机矩阵:
list = [np.random.random((500, 500)), np.random.random((500, 500))]
然后,我想matshow
在 pdf 文件的单独页面中绘制列表的每个元素:
with PdfPages('file.pdf') as pdf:
plt.rc('figure', figsize=(3,3), dpi=40)
for elem in list:
plt.matshow(elem, fignum=1)
plt.title("title")
plt.colorbar()
plt.text(0,640,"Caption")
pdf.savefig() # saves the current figure into a pdf page
plt.close()
我的问题是标题。你可以看到我故意把“Caption”放在文档的边缘。这是因为有时我想要插入的实际标题太大而无法放入单个 pdf 页面。
那么,如何使每个 pdf 页面都可以根据标题的内容进行调整(每个页面可能会有所不同)?例如,是否可以将每个页面大小设置为 A4 或 A3,然后在每个页面中绘制/写入所有内容?
我已经尝试过设置plt.figure(figsize=(X, X))
可变X
大小,但我猜它只是改变了 pdf 的分辨率。