Matplotlib 绘图中的 Lato 字体
Lato Fonts in Matplotlib Plots
之前有人问过这个问题,但我还没有找到适合我的解决方案。我一直在试图弄清楚如何将 Matplotlib 图中的 default font 更改为 Lato.
那里有几个 posts/threads,例如1, 2, 。通过这些帖子,我尝试按以下方式进行构建。首先,我电脑中的所有字体都添加到字体管理器中,如示例 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)
print 的输出是 --> 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”错误。但是字体仍然是默认字体而不是Lato。
我做错了什么?任何帮助表示赞赏!谢谢
使用该字体,最好 install 所有系列(或至少主要样式)。请记住,Lato 是一种 sans-serif 字体 并且由于您想将其用作所有绘图的默认字体(对于一个脚本),它应该在sans-serif 家庭选项。
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()
你可以看到标题、刻度的变化,如果你放一些图例,你会在那里看到字体。
之前有人问过这个问题,但我还没有找到适合我的解决方案。我一直在试图弄清楚如何将 Matplotlib 图中的 default font 更改为 Lato.
那里有几个 posts/threads,例如1, 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)
print 的输出是 --> 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”错误。但是字体仍然是默认字体而不是Lato。
我做错了什么?任何帮助表示赞赏!谢谢
使用该字体,最好 install 所有系列(或至少主要样式)。请记住,Lato 是一种 sans-serif 字体 并且由于您想将其用作所有绘图的默认字体(对于一个脚本),它应该在sans-serif 家庭选项。
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()
你可以看到标题、刻度的变化,如果你放一些图例,你会在那里看到字体。