ubuntu中matplotlib解决显示中文为方框

系统:ubutun16.04

Python版本:python3.5

在使用matplotlib绘图时遇到显示中文为方框的问题,在网上找各种解决方法,折腾了一下午,终于解决了,在这里纪念一下。

参考了https://www.zhihu.com/question/25404709,https://www.bbsmax.com/A/QW5YMxkO5m/等多个链接,

虽然不知道哪些步骤起到了作用,但终究解决了问题,只能下次遇到再探究。

第一步,下载中文黑体SimHei.ttf

第二步,找到matplotlib配置文件的位置

1 import matplotlib
2 print(matplotlib.matplotlib_fname())

/home/czz/anaconda3/lib/python3.5/site-packages/matplotlib/mpl-data/matplotlibrc

打开配置文件

1 sudo gedit /home/czz/anaconda3/lib/python3.5/site-packages/matplotlib/mpl-data/matplotlibrc

修改下面三项配置

font.family         : sans-serif

font.sans-serif     : SimHei, DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif(在font.sans-serif后添加SimHei,用来正常显示中文标签)

axes.unicode_minus  : False(把True改为False,用来正常显示负号)

第三步,将下载的字体复制到matplotlib字体库中

运行

1 locate -b 'mpl-data'

得到

1 /home/czz/anaconda3/lib/python3.5/site-packages/matplotlib/mpl-data
2 /home/czz/anaconda3/pkgs/matplotlib-1.5.3-np111py35_0/lib/python3.5/site-packages/matplotlib/mpl-data

将字体文件复制到这两个路径下。

可以在终端下运行命令fc-list :lang=zh-cn查看是否配置好了

 

第四步,在Home页中ctrl+H找到.cache/matplotlib目录将matplotlib删除。

重新运行测试代码(这个自己整一个简单的就好,我图省事就用了之前的代码)

 1 import matplotlib.pyplot as plt
 2 x_values = list(range(1, 1001))
 3 y_values = [x**2 for x in x_values]
 4 #去黑色轮廓
 5 plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues,
 6             edgecolors='none', s=40)
 7 #设置图表标题并给坐标轴加上标签
 8 plt.title(u"Squares of Number啊啊啊", fontsize=24)
 9 plt.xlabel("Value", fontsize=14)
10 plt.ylabel("Square of Value", fontsize=14)
11 #设置刻度标记的大小
12 plt.tick_params(axis='both', which='major', labelsize=14)
13 #设置坐标轴的取值范围
14 plt.axis([0, 1100, 1, 1100000])
15 
16 plt.show()

到这里发现依然没用,吐血。。。

就又在python中运行了如下代码:

from matplotlib.font_manager import _rebuild

_rebuild()

说是重新加载字体。然后重复执行第四步,再运行测试代码,我。。。我信你个鬼?没用!!!(当然这是对于我这台电脑来说,别人的可能有用也说不定)

这是气急败坏的我使用出了终极大招。。。。。。重启电脑!!!

重启电脑后运行测试代码。。。superise!!!直接上图

可行了!!!真真是山重水近疑无路,柳暗花明又一村,我哭了。虽然不懂,但仍要纪念一下。byebye,晕了一下午的我。

posted @ 2019-04-17 17:35  椰汁软糖  阅读(2268)  评论(0编辑  收藏  举报