如何在 matplotlib 中更改图例字体名称
Posted
技术标签:
【中文标题】如何在 matplotlib 中更改图例字体名称【英文标题】:How to change legend fontname in matplotlib 【发布时间】:2014-03-22 21:27:42 【问题描述】:我想在 matplotlib 图的图例中显示 Times New Roman 字体。
我已将所有其他刻度标签/轴标签/标题更改为 Times New Roman,并搜索了文档,但我只能找到如何使用 prop
更改图例中的字体大小
pyplot.legend()
中的参数
当然,在发布后,我立即找到了答案。其他有相同问题的人的解决方案:
import matplotlib as mpl
mpl.rc('font',family='Times New Roman')
【问题讨论】:
将您的答案添加为答案,以便可以接受并从“未回答”问题队列中取出。欢迎来到 ***! 【参考方案1】:这没有出现在谷歌搜索结果中,所以我将其发布为答案。 font 的 rc 参数可用于设置单个默认字体。
其他有相同问题的人的解决方案:
import matplotlib as mpl
mpl.rc('font',family='Times New Roman')
【讨论】:
【参考方案2】:.rc
给出的解决方案更改了所有绘图的默认字体。
当您不想更改所有字体,而只想更改此特定图形的图例(属于特定 axis
对象的图例)的字体属性时,这是一个解决方案:
L = ax.legend()
plt.setp(L.texts, family='Consolas')
这允许您为图例和轴选择不同的字体。当我的图例需要等宽字体而不是轴时,我发现这很有帮助——让我可以像这样创建一个整洁的图例:
请注意标题与图例的字体不同 - 这使我可以对齐数字,否则很难实现。
【讨论】:
很好,只是 Consolas 似乎没有标准安装或字体系列。'monospace'
为我工作
@DimaLituiev - Consolas 是 Mac 上的标准等宽字体。我猜你有一台Windows机器?无论如何 - 这是作为指导,而不是处方......
在我的 mac 10.10 上,open -a /Applications/Font\ Book.app
显示 9 种等宽字体,但只有 Courier
Courier New
和 monospace
在 Matplotlib 2.2.3 中工作。另见font_manager【参考方案3】:
我认为这是更好的方法。
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)
【讨论】:
以上是关于如何在 matplotlib 中更改图例字体名称的主要内容,如果未能解决你的问题,请参考以下文章