matplotlib 字幕对齐问题

cnjp1d6j  于 2023-06-06  发布在  其他
关注(0)|答案(1)|浏览(182)

我想在我试图创建的多个PDF文档的每一页的左上角对齐我的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()

奇怪的是:

verticalalignment='bottom'

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

kr98yfug

kr98yfug1#

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

y: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)
会把字幕放在左上角。
关键字horizontalalalign和verticalalignment的工作方式有点不同(参见例如https://matplotlib.org/users/text_props.html):
horizontalalalignment控制文本的x位置参数是指示文本边界框的左侧、中心还是右侧。
verticalalignment控制文本的y位置参数是指示文本边界框的底部、中心还是顶部。

相关问题