pyplot:更改辅助轴标签上的字体属性

时间:2016-04-26 14:48:28

标签: python matplotlib fonts latex

在Python图中,我想使用辅助x轴来显示一些替代值。我也非常喜欢乳胶字体,并希望这些字体能够贯穿整个情节。但是,我发现当我设置辅助轴时,乳胶字体会消失。这是一个最低限度的工作示例:

import numpy as np
import matplotlib.pyplot as plt

Xvalues = np.linspace(0,10,100)
Yvalues = np.sqrt(Xvalues)
Xticks = np.linspace(0,10,6)

AltXvalues = np.log10(Xvalues+1)
AltLabels = ["%.2f" % x for x in AltXvalues] # Round these values

fig = plt.figure()
plt.rcParams['text.usetex'] = True

ax1 = fig.add_subplot(1,1,1)
ax1.plot(Xvalues, Yvalues)
ax1.set_xticks(Xticks)
ax1.set_xlabel('$x_1$')
ax1.set_ylabel('$y$')

ax2 = ax1.twiny()
ax2.set_xlabel('$\\log_{10}\\,(x_1+1)$')
ax2.set_xticks(Xticks)
ax2.set_xticklabels(AltLabels)

plt.show()

Example

如何确保乳胶字体在辅助轴上继续?

1 个答案:

答案 0 :(得分:0)

这是因为您在设置AltLabels时将这些标签设置为字符串。您在主轴刻度标签上看到的不同字体是因为这些标签是以LaTeX的数学模式打印的。因此,简单的解决方法是将数学模式运算符添加到AltLabel字符串:

AltLabels = ["$%.2f$" % x for x in AltXvalues] # Round these values

(注意$标志)

enter image description here