Pyplot 在缩放时保持文本大小

Rot*_*lev 1 python matplotlib

我想在 pyplot 图中有一些文本,并且能够在不改变比例的情况下放大它。请参阅下面的情节示例,我希望发生什么,以及实际发生什么。
重现错误的代码:

import matplotlib.pyplot as plt
plt.plot((0, 0, 1, 1, 0), (1, 0, 0, 1, 1))
plt.text(0, 0, 'Test', fontsize=150)
plt.show()
Run Code Online (Sandbox Code Playgroud)

示例图片: 示例图 缩放时我想发生什么 实际发生的事情

Imp*_*est 5

matplotlib 中的文本以点为单位定义。点是一个绝对数量,与英寸成正比。因此,文本将始终具有相同的大小。

在这里,您想在数据坐标中定义文本。这可以通过首先将文本转换为路径,然后将该路径添加到轴来实现。它是通过 a 完成的TextPath,随后将其转换为PathPatch

import matplotlib.pyplot as plt
from matplotlib.textpath import TextPath
from matplotlib.patches import PathPatch

plt.plot((0, 0, 1, 1, 0), (1, 0, 0, 1, 1))

tp = TextPath((0,0), "Test", size=0.4)
plt.gca().add_patch(PathPatch(tp, color="black"))

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明