使用backend_pdf时,Matplotlib:表情符号字体不起作用

时间:2018-03-01 09:57:15

标签: pdf matplotlib fonts emoji axis-labels

我想用emoji-font“Symbola.ttf”来标记我的情节。当我使用plt.show()时,这确实有效。但是在使用backend_pdf时它不起作用。只有两个表情符号以混合顺序显示。

示例图片:

使用plt.show()时:

when using <code>plt.show()</code>

使用backend_pdf时:

when using the backend_pdf

示例代码:

以下是制作这些示例的代码:

import matplotlib.backends.backend_pdf
import matplotlib.pyplot as plt
import emoji
from matplotlib.font_manager import FontProperties

emojis = [emoji.EMOJI_UNICODE[e] for e in list(emoji.EMOJI_UNICODE.keys())[620:630]]
prop = FontProperties(fname='./Symbola.ttf', size=30)

# backend_pdf plot
pdf = matplotlib.backends.backend_pdf.PdfPages("output.pdf")
plt.xticks(range(len(emojis)), emojis, fontproperties=prop)
pdf.savefig()
pdf.close()

# plt.show() plot
plt.xticks(range(len(emojis)), emojis, fontproperties=prop)
plt.show()

我在Linux机器上运行它。

1 个答案:

答案 0 :(得分:0)

我想我发现了这个问题。似乎我的Symbola.ttf被打破了。当我使用这个.ttf file时,一切都很好。