gpt4 book ai didi

python - Matplotlib rcParams 无法识别 "Times New Roman"(mac High Sierra)

转载 作者:行者123 更新时间:2023-12-05 03:04:46 24 4
gpt4 key购买 nike

我正在尝试将 matplotlib 图的字体设置为 Times New Roman。我试过:

import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Times New Roman'

我相信这是设置字体的正确方法,但我一直收到找不到找到的错误:

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/font_manager.py:1238: UserWarning: findfont: Font family ['Times New Roman'] not found. Falling back to DejaVu Sans.

经过一些搜索,我确认我已经下载了字体。我尝试打开一个 python shell 并自己检查 rcParams 的内容。在一堆其他字体参数中,我好奇地在包含 Times New Roman 的 font.serif 中得到了一个字体列表。

          'font.serif': ['DejaVu Serif',                         'Bitstream Vera Serif',                         'Computer Modern Roman',                         'New Century Schoolbook',                         'Century Schoolbook L',                         'Utopia',                         'ITC Bookman',                         'Bookman',                         'Nimbus Roman No9 L',                         'Times New Roman',                         'Times',                         'Palatino',                         'Charter',                         'serif'],

但是,font.family 只包含一项:sans-serif,当 matplotlib documentation states font.family 中应该有五个值。以前有人遇到过这个错误吗?你是怎么解决的?

最佳答案

However, font.family only contained one item: sans-serif, when the matplotlib documentation states that there should be five values inside font.family

不,font.family 应该包含这五个值之一,即您要使用的字体系列。

您必须确保字体系列设置为 serif 并且字体 Times New Roman 位于衬线字体列表的顶部。它是这样工作的:

plt.rcParams['font.family'] = 'serif'
plt.rcParams['font.serif'] = ['Times New Roman'] + plt.rcParams['font.serif']

从技术上讲,您不需要附加列表的其余部分(最后一部分)。如果 Times New Roman 实际上不可用,它只是为 matplotlib 提供后备。

另见 example in the docs .

关于python - Matplotlib rcParams 无法识别 "Times New Roman"(mac High Sierra),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52673444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com