繁体   English   中英

Matplotlib 图中的拉托 Fonts

[英]Lato Fonts in Matplotlib Plots

之前有人问过这个问题,但我还没有找到任何适合我的解决方案。 我一直在试图弄清楚如何将 Matplotlib plot 中的默认字体更改为Lato

那里有几个帖子/线程,例如123 通过这些帖子,我尝试按以下方式进行构建。 首先,将我计算机中的所有 fonts 添加到字体管理器中,如示例 2 中建议的那样。

from matplotlib import font_manager

font_dirs = [r"C:\Windows\Fonts"]
font_files = font_manager.findSystemFonts(fontpaths=font_dirs)

for font_file in font_files:
    font_manager.fontManager.addfont(font_file)
    
result = font_manager.findfont("Lato")
print(result)

打印的 Output 是 --> C:\Windows\Fonts\Lato-Regular.ttf因此,字体管理器检测到 Lato。 在下一步中,我尝试了

import matplotlib as mpl
mpl.rcParams['font.family'] = 'Lato-Regular'
mpl.rcParams['font.sans-serif'] = 'Lato-Regular'
import matplotlib.pyplot as plt
plt.plot(range(0,50,10))
plt.title('Font test', size=32)
plt.show()
plt.savefig('f1.png')

现在代码运行完美,没有任何“DeJaVou”错误。 但 font 仍然是默认字体,而不是Lato

我究竟做错了什么? 任何帮助表示赞赏。 谢谢。

使用该字体,最好安装所有系列(或至少安装主要样式)。 请记住,Lato 是一种无衬线字体,并且由于您想将其用作所有 plot(仅用于一个脚本)的默认字体,因此它应该在无衬线系列选项中。

import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt

print(mpl.rcParams['font.sans-serif'])

# Just write the name of the font
mpl.rcParams['font.sans-serif'] = 'Lato'
print(mpl.rcParams['font.sans-serif'])

plt.figure()
plt.plot(range(0,50,10))
plt.title('Font test', size=32)


plt.figure()
x = np.linspace(0, 6.5)
y = np.sin(x)
plt.plot(x, y)
plt.title(r'Just a plot of the function $f(x) = \sin(x)$', size=18)

plt.show()

正如你可以看到标题、刻度的变化,如果你放了一些图例,你会在那里看到字体。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM