【问题标题】:Matplotlib xlabel in Arial with one word italicisedArial 中的 Matplotlib xlabel,带有一个斜体字
【发布时间】:2017-07-08 07:42:57
【问题描述】:

我想创建一个带有 x 轴标签的 matplotlib 图,该标签是 Arial 字体,并且有一个斜体字。

我可以创建带有 x 轴标签的乳胶字体图形,其中一个单词斜体;我也可以在 Arial 中创建带有 x 轴标签的图形,只要我将整个标签斜体或整个标签正常;但我无法以 Arial 斜体形式获取 xlabel 的一部分,而以 arial 正常形式获取另一部分。

我主要尝试以下代码的排列:

from matplotlib import pyplot as plt
import numpy as n
import matplotlib
from matplotlib.font_manager import FontProperties
font = {'family' : 'Arial',
    'weight' : 'medium',
    'size'   : 20,
    'style'  : 'normal'}
font0 = {'family' : 'Arial',
    'weight' : 'medium',
    'size'   : 20,
    'style'  : 'italic'}


matplotlib.rcParams['mathtext.fontset'] = 'custom'
matplotlib.rcParams['mathtext.rm'] = 'Arial'
matplotlib.rcParams['mathtext.it'] = 'Arial'


matplotlib.rc('font', **font)
#matplotlib.rc('font', **font0)
matplotlib.rc('text', usetex=False)

plt.figure(); plt.plot(n.linspace(0,3,10), n.linspace(0,3,10))
plt.xlabel(r'$\mathit{italics}$ - rest normal')

【问题讨论】:

    标签: python matplotlib latex


    【解决方案1】:
    from matplotlib.pyplot import *
    
    # Need to use precise font names in rcParams; I found my fonts with
    #>>> import matplotlib.font_manager
    #>>> [f.name for f in matplotlib.font_manager.fontManager.ttflist]
    
    rcParams['mathtext.fontset'] = 'custom'
    rcParams['mathtext.it'] = 'Arial:italic'
    rcParams['mathtext.rm'] = 'Arial'
    
    fig, ay = subplots()
    
    
    # Using the specialized math font elsewhere, plus a different font
    xlabel(r"$\mathit{Italic}$ $\mathrm{and\ just\ Arial}$ and not-math-font",fontsize=18)
    # No math formatting, for comparison
    ylabel(r'Italic and just Arial and not-math-font', fontsize=18)
    grid()
    
    show()
    

    【讨论】:

    • 太棒了!!这行得通,字体管理器的想法很棒 - 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    相关资源
    最近更新 更多