首页 > 解决方案 > pyplot plt.text 自定义字体

问题描述

我正在尝试为某些名称标签以自定义字体在 python 中制作图片。所以最终目标是有一个循环来保存我想要的带有文本的图像。

Afaik 这应该可以工作,因为我更改了 rc. 但是 plt.text 的字体仍然是默认的。有谁知道如何使这项工作?

import matplotlib.pyplot as plt
from matplotlib import font_manager, rc

f_name = font_manager.FontProperties(fname='/Users/me/Library/Fonts/customfont.ttf').get_name()
rc('font', family=f_name)

plt.text(0, 0.6, r"$%s$" % 'test', fontsize = 50)

这是我得到的一个例子。刻度发生变化,因此 rc 设置正确。但文字没有。 在此处输入图像描述

标签: pythonmatplotlibfonts

解决方案


问题似乎来自$ ... $应该覆盖字体属性的符号。

尝试:

import matplotlib.pyplot as plt
from matplotlib import font_manager

# Path
path = '/path/to/custom/font.ttf'

# Create FontProperty object
font_prop = font_manager.FontProperties(fname=path)

# Apply font_prop to the text
plt.text(0, 0.6, 'Custom font !', font_properties=font_prop, fontsize = 50)


plt.show()

输出: 在此处输入图像描述


推荐阅读