<p>补充@arjenve的回答。要绘制Unicode字符,首先要找出哪个字体包含该字符,其次,使用该字体用Matplotlib打印字符</p>
<h2>查找包含该字符的字体</h2>
<p>根据<a href="https://stackoverflow.com/questions/43834362/python-unicode-rendering-how-to-know-if-a-unicode-character-is-missing-from-the">this post</a>,我们可以使用<a href="https://github.com/fonttools/fonttools" rel="nofollow noreferrer">fontTools</a>包来查找包含我们要绘制的字符的字体。在</p>
<pre><code>from fontTools.ttLib import TTFont
import matplotlib.font_manager as mfm
def char_in_font(unicode_char, font):
for cmap in font['cmap'].tables:
if cmap.isUnicode():
if ord(unicode_char) in cmap.cmap:
return True
return False
uni_char = u"✹"
# or uni_char = u"\u2739"
font_info = [(f.fname, f.name) for f in mfm.fontManager.ttflist]
for i, font in enumerate(font_info):
if char_in_font(uni_char, TTFont(font[0])):
print(font[0], font[1])
</code></pre>
<p>此脚本将打印字体路径和字体名称的列表(所有这些字体都支持该Unicode字符)。示例输出如下所示</p>
<p><a href="https://i.stack.imgur.com/n37p5.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/n37p5.png" alt="enter image description here"/></a></p>
<p>然后,我们可以使用下面的脚本来绘制这个字符(见下图)</p>
^{pr2}$
<p><a href="https://i.stack.imgur.com/LtrID.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/LtrID.png" alt="enter image description here"/></a></p>