我想在matplotlib图的图例中显示Times New Roman中的字体。
我已将所有其他刻度标签/轴标签/标题更改为Times New Roman,并搜索了文档,但我只能找到如何使用prop
更改图例中的字体大小
pyplot.legend()
谢谢
当然,在发布后,我找到了答案。具有相同问题的任何其他人的解决方案:
import matplotlib as mpl
mpl.rc('font',family='Times New Roman')
答案 0 :(得分:11)
这没有出现在谷歌搜索结果中,所以我打算将其作为答案发布。字体的rc参数可用于设置单个默认字体。
解决其他任何有同样问题的人:
import matplotlib as mpl
mpl.rc('font',family='Times New Roman')
答案 1 :(得分:9)
给出的.rc
解决方案会更改所有绘图的默认字体。
当您不想更改所有字体,而只是更改此特定图表(属于特定axis
对象的图例)的图例的字体属性时,这是一个解决方案:< / p>
L = ax.legend()
plt.setp(L.texts, family='Consolas')
这允许您为图例和轴选择不同的字体。当我需要为我的传奇使用等宽字体而不是轴时,我发现这很有用 - 允许我创建一个像这样的整洁传奇:
请注意标题的字体与图例的不同 - 这为我提供了一些难以实现的数字对齐。
答案 2 :(得分:1)
我认为这是更好的方法。
import matplotlib.font_manager as fm
## your font directory
font_path = '/Users/frhyme/Library/Fonts/BMDOHYEON_otf.otf'
## font_name
font_name = fm.FontProperties(fname=font_path).get_name()
plt.legend(prop={'family':font_name, 'size':20})