与 matplotlib 子图不一致的刻度标签字体
Posted
技术标签:
【中文标题】与 matplotlib 子图不一致的刻度标签字体【英文标题】:Inconsistent tick labels font with matplotlib subplots 【发布时间】:2017-07-09 20:24:34 【问题描述】:我正在使用matplotlib.pyplot.subplots
制作一个绘图网格,并且我希望刻度标签采用 LaTeX 的无衬线字体,但是当我使用子图时,我总是会得到至少一个以 matplotlib 的默认字体呈现的刻度标签.
这是一个 MWE:
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=1, ncols=1)
x = [1,2,3,4,5]
plt.plot(x)
plt.rc('text', usetex=True)
plt.rc('font', family='sans-serif')
plt.show()
如果您注释掉 fig, axes = plt.subplots
行,刻度标签将按原样显示。
我正在使用 python 3.6.0 版和 matplotlib 2.0.0 版
【问题讨论】:
【参考方案1】:对 rcParam 的更改应尽快进行,并且必须在创建它们影响的对象之前进行。
因此,将 rc 更改放在顶部,可以解决问题:
import matplotlib.pyplot as plt
plt.rc('text', usetex=True)
plt.rc('font', family='sans-serif')
fig, axes = plt.subplots(nrows=1, ncols=1)
x = [1,2,3,4,5]
plt.plot(x)
plt.show()
【讨论】:
跟进问题(感谢您的回答):为什么plt.text
或plt.xlabel
不会以LaTeX 字体显示?假设程序与您的 asnwer 中的程序相同。
就我而言,他们确实如此。对我来说,问题似乎在于刻度标签不服从 sans-serif 属性。以上是关于与 matplotlib 子图不一致的刻度标签字体的主要内容,如果未能解决你的问题,请参考以下文章
删除 Matplotlib,Python 中某些子图的 y 轴刻度标签
如何更改 matplotlib 中轴对象刻度的字体大小 [重复]
如何更改 Matplotlib 中颜色条刻度标签的字体大小?