繁体   English   中英

在Matplotlib中对齐LaTeX刻度标签

[英]Aligning LaTeX ticklabels in Matplotlib

我有一个带有LaTeX ticklabels的简单Matplotlib图。 我希望它们居中对齐,以便它们看起来都一样,但是即使va='center'它们也似乎位于不同的垂直位置:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

# Some Matplotlib settings so the font is consistent
mpl.rc('font', **{'family': 'serif', 'serif': ['Computer Modern'],
                  'size': 20})
mpl.rc('text', usetex=True)

theta = np.linspace(-np.pi, np.pi, 100)

fig, ax = plt.subplots()
ax.plot(theta, np.cos(theta))

ax.set_xticks(np.linspace(-np.pi, np.pi, 5))
ax.set_xticklabels((r'$-\pi$', r'$-\pi/2$', '0',
                    r'$\pi/2$', r'$\pi$'), va='center')
ax.tick_params(axis='x', which='major', pad=20)
plt.show()

在此处输入图片说明

我该怎么做才能使我的xticklabel对齐?

尝试使用对齐关键字va='baseline'进行垂直对齐。 这将使文本在基线上对齐,这意味着所有字母的底行均不带下划线。 理论上,所有π都应该排列整齐。

ax.set_xticklabels((r'$-\pi$', r'$-\pi/2$', '0',
                    r'$\pi/2$', r'$\pi$'), va='baseline')

即使标签仍然无法完美对齐,这也为我改善了情节。 可以在此处找到更多信息。 基线对齐图

编辑:

不幸的是,这对我不起作用。 [...]我怀疑这是一个后端问题。 -xnx

标签的位置随使用的后端而变化。 这是svg,png和pdf后端生成的输出之间的比较,全部使用基线关键字。 请注意,pdf和svg标签几乎完美对齐,因此pdf标签不清晰可见。

后端比较

因此,出于交互式查看器之外的所有目的,使用pdf或svg后端看起来不错。 使用png后端时,标签到处都是。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM