Matplotlib中无法加载表情符号字体

3
我想在matplotlib中绘制苹果表情符号,因此编写了以下代码。 然而,在设置字体时出现了无法设置字体大小的错误。 如果不设置字体,它将绘制如下图像。image of plotting emoji 我的系统是Mac OS X Sierra 10.12.6,我的matplotlib版本是2.0.2。
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

prop = FontProperties(fname='/System/Library/Fonts/Apple Color Emoji.ttc')
plt.rcParams['font.family'] = prop.get_name()

plt.annotate("", (0.5, 0.3), size=30)
plt.annotate("", (0.5, 0.8), size=30)
plt.savefig("emoji_test.png")

文件“./emoji_test.py”,第5行,

plt.rcParams['font.family'] = prop.get_name()

文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/matplotlib/font_manager.py”,第750行,

return get_font(findfont(self)).family_name

运行时错误:在FT2Font中:无法设置字体大小


请点击此处了解如何使用普通图像代替。 - ImportanceOfBeingErnest
我尝试了TTF字体,但结果仍然相同。我使用了图片代替表情符号(就像你建议的那样),但我想使用表情符号字体,因为图片质量很差。 - tommy19970714
我从你推荐的stackoverflow问题中找到了问题所在。使用plt.savefig时缺少表情符号 该问题中可以显示表情符号,但却无法在自己的环境中重现。 - tommy19970714
好的,我建议您编辑问题,使用您从该问题中获得的代码以及您使用它时遇到的问题。但我认为这不是使用 ttc 字体,而是 ttf 字体。 - ImportanceOfBeingErnest
非常感谢您的各种研究! - tommy19970714
显示剩余2条评论
1个回答

1
使用prop.get_family()而不是prop.get_name(),因为你正在设置字体系列而不是字体名称 代码变成这样。
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

prop = FontProperties(fname='/System/Library/Fonts/Apple Color Emoji.ttc')
plt.rcParams['font.family'] = prop.get_family()

plt.annotate("", (0.5, 0.3), size=30)
plt.annotate("", (0.5, 0.8), size=30)
plt.savefig("emoji_test.png")

下面是生成的图形 enter image description here PS. 错误信息是由已知问题引起的。请参见 RuntimeError In FT2Font with NISC18030.ttf

这个图和问题中的那个有什么区别? - ImportanceOfBeingErnest
在我的帖子开头已经解释了。 - sgDysregulation
1
谢谢你告诉我!我预期那个图是用苹果彩色表情字体绘制的,但输出的图不是苹果表情符号。你知道这个解决方案吗? - tommy19970714
2
我想要画出像这个图表一样的图形。emoji graph - tommy19970714

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接