首页 > 系统服务 > 详细

ubuntu下matplotlib画图中文乱码问题

时间:2015-03-17 20:02:08      阅读:1756      评论:0      收藏:0      [点我收藏+]

  最近因为论文原因在学习机器学习,看的一本叫做《机器学习实战》的书,看了看还是不错的,因为其中既有原理又有实例。今天载使用matplotlib进行画图时,发现中文会显示为小方块,这个问题真是神烦,折腾了一下午,终于搞定了,下面记录一下我解决的过程。

    1. 查看matplotlib支持的中文字体

    用python运行以下代码:

#! /usr/bin/env python
# -*- coding: utf-8 -*-
from matplotlib.font_manager import FontManager
import subprocess

fm = FontManager()
mat_fonts = set(f.name for f in fm.ttflist)

output = subprocess.check_output(
    fc-list :lang=zh -f "%{family}\n", shell=True)
# print ‘*‘ * 10, ‘系统可用的中文字体‘, ‘*‘ * 10
# print output
zh_fonts = set(f.split(,, 1)[0] for f in output.split(\n))
available = mat_fonts & zh_fonts

print * * 10, 可用的字体, * * 10
for f in available:
    print f

     我运行之后,发现说是"import Error:no module named font_manage"错误,之后经过一顿的搜索与尝试,发现如下方法可以解决这个问题:使用windows下的字体,讲C:\windows\fonts文件夹下的所有以.ttf结尾的文件拷贝到/usr/share/fonts/truetype目录下,并将所有的ttf文件的权限修改所有人可以读。

    2. 配置matplotlibrc文件

    修改matplotlibrc文件(查询该文件的方法:进入root跟目录下,运行find -name matplotlib),修改为如下:

font.family         : serif
font.serif : {zh_family}, serif

    其中{zh_family}就是1中所得到的可用字体。

    参考资料

    【1】http://segmentfault.com/blog/defool/1190000000621721

    【2】http://www.zeuux.com/group/scipython/bbs/content/6270/

ubuntu下matplotlib画图中文乱码问题

原文:http://www.cnblogs.com/ningvsban/p/4345178.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!