轴标签部分的 Matplotlib 斜体 - 适用于默认字体但未指定字体

Matplotlib Italic in portion of axes labels - applied to default font but not specified font

我希望情节中的所有文本都是 Times New Roman,因此我执行了以下操作:

import matplotlib.pyplot as plt
plt.rcParams["font.family"] = "Times New Roman" # change default font

我只希望标签的“(x)”和“(z)”部分为斜体,所以我这样做了:

plt.xlabel('Underutilization $\it{(x)}$', labelpad=15)
plt.ylabel('Productivity $\it{(z)}$', labelpad=15)

然而,我在绘制时最终得到的是 Times New Roman 中的 'Underutilization',但斜体无衬线字体中的 '(x)'(默认值为 Python)。与 ylabel 相同。

我该如何补救?

$ 标志内的文本由 matplotlib 的 mathtext (unless you are using LaTex), and is controlled by the rcParam mathtext.fontset which is outlined in the documentation

口述

mathtext.fontset: ‘dejavusans’ (default)
  ‘dejavuserif’, ‘cm’ (Computer Modern), ‘stix’,
  ‘stixsans’ or ‘custom’

使用LaTex for the text rendering 可以更灵活地选择字体,我相信会支持 Times New Roman。如果你使用 LaTex 那么它应该在你调整 font.family.

时调整数学字体