Matplotlib无法正确显示符号/ Unicode

时间:2018-07-20 23:39:18

标签: matplotlib plot unicode fonts symbols

在项目的一部分中,我需要描绘一些符号。但是,一些符号未正确显示/保存。

import matplotlib.pyplot as plt
%matplotlib inline

plt.subplots(1,1, facecolor='w', dpi = 150)

plt.text(0.1, 0.9, ['This is a test', "⭘" , '◔'])
plt.text(0.1, 0.8, ['This is a test', "⭘" , '◔'], fontname = 'Arial')
plt.text(0.1, 0.7, ['This is a test', "⭘" , '◔'], fontname = 'SimHei')

plt.yticks([0,0.5,1],["⭘",'◔','⏺'])

plt.savefig('unicode_error.png')
plt.show()

结果如下,该图未显示某些符号: plot does not show some symbols

我在Win10中运行,我尝试了两个后端:nbAgg和backend_inline。

两个主要问题:
1.如何解决显示“⭘”或“⏺”的主要问题?
2.如何将默认字体更改为matplotlib.font_manager中不包含的字体(在我的情况下为“ SimHei”)?目前,我收到以下警告: C:\ Users \ mabag \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ matplotlib \ font_manager.py:1328:找不到用户警告:findfont:字体家族['SimHei']。退回DejaVu Sans (prop.get_family(),self.defaultFamily [fontext]))

2 个答案:

答案 0 :(得分:0)

正在使用的字体需要实际提供unicode符号。在这里您可能要使用

plt.text(0.1, 0.9, ['This is a test', "○" , '◔'])

plt.text(0.1, 0.8, ['This is a test', "◯" , '◔'])

enter image description here

答案 1 :(得分:0)

花了很多小时后,我找到了解决方法:

from matplotlib import rcParams
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = ['Segoe UI Symbol','simHei','Arial','sans-serif']

但是,最重要的一点是删除.matplotlib的文件夹。文件夹通常位于c:\users\your_username\.matplotlib(在Windows中)或home\.matplotlib(在Linux中)中。