簡體   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