我正在使用matplotlib绘图制作电影,并且一直在努力寻找text()
元素的绝对定位。问题是我的文本块(通常是增加数字)会根据打印的数字继续移动。即使我将水平/垂直对齐设置为固定级别(例如right
或bottom
),也会发生这种情况。
这似乎与我使用LaTeX字体有关,特别是某些字符比其他字符宽的字体。使用默认字体(Bitstream Vera Sans),它不会发生。
以下是问题的说明。使用默认字体:
使用乳胶cmbright字体:
注意小数点的位置如何根据前导数字是0,1还是2而水平移动。在其他一些示例中,小数点垂直移动。以下代码用于生成这些图:
figure(figsize=(4,4))
tt = text(.7, .5, '00.0', va='center', ha='right', fontsize=60)
for i in range(26):
tt.set_text('%04.1f' % (float(i)))
savefig(...)
对于LaTeX字体,我之前加载了以下内容:
rc('text', usetex=True)
rc('text.latex', preamble=r'\usepackage{cmbright}')
我尝试过不同类型的对齐方式,但我仍然无法解决问题。 ha='right'
我认为右侧始终位于固定位置。改变字体不是一个真正的选择,因为我需要这个以保持一致性和其他原因。关于如何解决这个问题的任何想法?它导致非常不专业的视频。