如何在matplotlib中更改图例字体名

2024-04-29 00:25:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在matplotlib绘图的图例中显示一个Times New Roman字体。 我已将所有其他刻度标签/轴标签/标题更改为Times New Roman,并搜索了文档,但我只能找到如何使用prop更改图例中的字体大小 pyplot.legend()中的参数

谢谢你

当然,在发布之后,我就找到了答案。其他有相同问题的人的解决方案:
import matplotlib as mpl
mpl.rc('font',family='Times New Roman')


Tags: 文档绘图标题newmatplotlib字体标签mpl
3条回答

给定的.rc解决方案更改了所有绘图的默认字体。

当您不想更改所有字体,而只想更改此特定图形图例(属于特定axis对象的图例)的字体属性时,可以使用以下解决方案:

L = ax.legend()
plt.setp(L.texts, family='Consolas')

这允许您为图例和轴选择不同的字体。当我需要为图例使用单空间字体时,我发现这很有帮助,但对坐标轴没有帮助--允许我创建这样一个整洁的图例:

enter image description here

请注意标题与图例是如何不同的字体-这给了我一个数字对齐,否则很难实现。

我认为这是更好的方法。

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})

这并没有出现在谷歌的搜索结果中,所以我会把它作为一个答案发布出来。字体的rc参数可用于设置单个默认字体。

其他有相同问题的人的解决方案:

import matplotlib as mpl

mpl.rc('font',family='Times New Roman')

相关问题 更多 >