9

我想在我尝试创建的多个 PDF 文档的每一页的左上角对齐我的副标题,但是,当我尝试询问时,它似乎没有做。下面的脚本在顶部和中心生成字幕。我无法弄清楚我做错了什么:

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()

奇怪的是:

verticalalignment='bottom'

只会将字幕移得更高(并且稍微偏离页面顶部),这让我认为它正在将自己与页面边缘不同的边界对齐?

4

1 回答 1

14

来自https://matplotlib.org/devdocs/api/_as_gen/matplotlib.pyplot.suptitle.html

为图形添加居中的标题。

kwargs 是 matplotlib.text.Text 属性。使用图形坐标,默认值为:

x : 0.5

   The x location of the text in figure coords

是:0.98

   The y location of the text in figure coords

您可以通过为 x 和 y 选择不同的值来移动字幕在图形坐标中的位置。例如,

plt.suptitle(country, x=0.1, y=.95, horizontalalignment='left', verticalalignment='top', fontsize = 15)

将把字幕放在左上角。

关键字水平对齐和垂直对齐有点不同(参见例如https://matplotlib.org/users/text_props.html):

Horizo​​ntalalignment 控制文本的 x 位置参数是否指示文本边界框的左侧、中心或右侧。

verticalalignment 控制文本的 y 位置参数是否指示文本边界框的底部、中心或顶部。

于 2017-10-26T11:33:25.853 回答