【问题标题】:Inconsistent tick labels font with matplotlib subplots与 matplotlib 子图不一致的刻度标签字体
【发布时间】: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 版

【问题讨论】:

    标签: python matplotlib tex subplot


    【解决方案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.textplt.xlabel 不会以LaTeX 字体显示?假设程序与您的 asnwer 中的程序相同。
    • 就我而言,他们确实如此。对我来说,问题似乎在于刻度标签不服从 sans-serif 属性。
    猜你喜欢
    • 1970-01-01
    • 2011-09-17
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    相关资源
    最近更新 更多