【发布时间】:2013-11-14 20:44:59
【问题描述】:
我在 matplotlib 中设置 usetext=True 以使用 Latex 来管理我的绘图中的字体布局。现在 x 轴和 xticklabel 之间的空间对于正值和负值是不同的,如图所示。
是否有可能获得相同的空间?
例子:
import numpy as np
import matplotlib.pyplot as plt
t = np.linspace(-10.0, 10.0, 100)
s = np.cos(t)
plt.rc('text', usetex=True)
plt.rc('font', family='serif', size=30)
plt.plot(t, s)
plt.show()
【问题讨论】:
-
没有简单的方法来实现这一点,因为在外部使用
dvipng处理文本,并将生成的图像插入到图中。这些没有任何空白。您必须做的是将 xtick 标签对齐设置为“右”,然后向右移动一点。但我无法让这种额外的转变工作。 -
问题在于如何从 PS 边界框推断出文本的轮廓。对齐的是大纲框,而不是文本本身。我认为你必须深入挖掘才能改变这种行为。
-
不要试图“过度设计”你的地块,它们已经很整洁了。
-
除非我很困惑,否则用户询问的是负标签的 vertical 对齐方式,这是一个错误,而不是 horizontal结盟*。与优先考虑的水平定位不同,垂直对齐是完全错误的。
-
@mdurant 实际上,在这种情况下,仅按轮廓框对齐可能就可以了。但是 matplotlib 试图通过直接从 dvi 文件中读取下降值来调整对齐方式,除其他外,由于某种原因,它认为减号延伸到基线以下。
标签: python matplotlib latex