gpt4 book ai didi

python - plt.show() 可以找到字体,但 plt.savefig() 不能

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:56 46 4
gpt4 key购买 nike

我在使用 matplotlib 绘图时需要使用所需的 OTF 字体,但不知道如何访问它。我看到了How to use a (random) *.otf or *.ttf font in matplotlib? ,但推荐的解决方案都不适合我。

选项 1,我在这里设置 prop = matplotlib.font_manager.FontProperties(fname = '/Users/<username>/Library/Fonts/Univers-Condensed.otf')立即吐出一个错误,因为 OTF 字体没有预期的 TTF 结构。

选项 2,我将 family name 设置为字体的通用名称,找到 OTF 字体:

plot_font = {'family' : 'Univers-Condensed',
'size' : '11'}

matplotlib.rc('font', **plot_font)

plt.plot(range(10))
plt.title('Show me Universe', size = 32)

plt.show()

绝妙!但是当我改变 plt.show()plt.savefig('test.pdf')我收到此错误:

UserWarning: findfont: Font family ['Univers-Condensed'] not found.
Falling back to Bitstream Vera Sans
(prop.get_family(), self.defaultFamily[fontext]))

为什么是plt.savefig()无法找到与 plt.show() 相同的字体可以找到?您对处理它的不同方法有什么建议吗?我不想将字体转换为 TTF。

最佳答案

我找到了 this今天早上的解释,这有助于 matplotlib 找到安装在用户配置文件中的字体系列。请务必注意,~/.matplotlib/fontList.py3k.cache~/.matplotlip/tex.cache 都需要清除。在我最初的尝试中,我只清除了 ~/.matplotlib/fontList.py3k.cache

我仍然没有确定为什么 plt.show()plt.savefig() 在只清除一个缓存时表现不同,但我现在能够用我想要的字体保存数字。

关于python - plt.show() 可以找到字体,但 plt.savefig() 不能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42010030/

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