matplotlib python中\hat的位置不正确

bqjvbblv  于 2023-02-19  发布在  Python
关注(0)|答案(1)|浏览(185)

以下代码生成一个简单的图,其中y轴具有LaTeX命令生成的标签

import numpy as np
import matplotlib.pyplot as plt
%matplotlib notebook

plt.figure()
hatdelta = '$\hat{\Delta}$'
xlist = np.array([ 0, 1 ])
ylist = np.array([ 1, 2 ])
plt.errorbar(xlist, ylist, fmt='o', capsize=2)
ax = plt.gca()
ax.set_ylabel(hatdelta, fontsize=16)
plt.draw()
plt.show()

我使用jupyter-notebook来运行代码,这是实际的结果:

仔细检查y轴会发现LaTeX的渲染不正确:

帽子没有在符号上居中。但是,LaTeX代码应该正确地将帽子居中。例如,这是使用相同命令的LaTeX源代码的输出:

有可能修复这个不正确的LaTeX渲染吗?

hjzp0vay

hjzp0vay1#

你有两个选择。

import numpy as np
import matplotlib.pyplot as plt

# To use LaTeX
plt.rcParams['text.usetex'] = True

plt.figure()
hatdelta = '$\hat{\Delta}$'
xlist = np.array([ 0, 1 ])
ylist = np.array([ 1, 2 ])
plt.errorbar(xlist, ylist, fmt='o', capsize=2)
ax = plt.gca()
ax.set_ylabel(hatdelta, fontsize=16)
plt.draw()
plt.show()

或者

import numpy as np
import matplotlib.pyplot as plt

plt.figure()
# Improve \hat
hatdelta = '$\hat{\,\Delta}$'
xlist = np.array([ 0, 1 ])
ylist = np.array([ 1, 2 ])
plt.errorbar(xlist, ylist, fmt='o', capsize=2)
ax = plt.gca()
ax.set_ylabel(hatdelta, fontsize=16)
plt.draw()
plt.show()

相关问题