Matplotlib - 添加与坐标轴底部对齐的标签

2 投票
1 回答
1166 浏览
提问于 2025-04-17 14:34

我想在我的图表上给竖线添加标签(在这个例子中是紫色线 - '这里放文本')。

问题是我不知道Y轴的最小值,因为这个轴是自动生成的,而text()函数需要一个x值和一个y值。

我想要么把文本对齐到图表的底部,要么找到Y轴的最小值(在这个例子中,matplotlib似乎是获取了最小轴值并向下取整到主要轴值)。

我现在正试图用text()来实现这个。

这些竖线是用axvline()创建的。

下面是我想要实现的效果的截图;

(注意,图像上的文本是我在屏幕捕捉软件中添加的,用来显示我想要文本出现的位置)

enter image description here

1 个回答

6

你可以通过使用混合变换来实现这个功能:

import matplotlib.transforms as transforms

fig = plt.figure()
ax = fig.add_subplot(111)

trans = transforms.blended_transform_factory(
    ax.transData, ax.transAxes)

ax.plot(range(50))
ax.axvline(20)

ax.text(20, 0.05, 'test', transform=trans, rotation='vertical', ha='right')

变换教程

撰写回答