最近因为论文原因在学习机器学习,看的一本叫做《机器学习实战》的书,看了看还是不错的,因为其中既有原理又有实例。今天载使用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 matplotlibrc),修改为如下:

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画图中文乱码问题的更多相关文章

  1. Ubuntu环境下 matplotlib 图例中文乱码

    最近做了一个最小二乘法的代码编写并用 matplotlib 绘制了一张图,但是碰到了中文乱码问题.简单搜索之后,发现有人总结出了比较好的方案,亲测可行.推荐给大家. 本文前提条件是 已经 安装好 ma ...

  2. Python 3下Matplotlib画图中文显示乱码的解决方法

    解决办法: 因为乱码是Matplotlib缺少中文配置所导致的,所以我们只需要在程序中说明使用中文字体即可. 先选一个字体.在计算机中找到字体,选择一种中文字体,比如我这里用的是楷体 右键可以查看其属 ...

  3. Ubuntu下matplotlib的中文显示

    真真地被matplotlib的中文显示折磨的不行了.简要记下解决方案,防止以后重新配又是蛋疼菊紧. 我的环境:系统是Ubuntu 13.04,Python是系统自带的,matplotlib是apt安装 ...

  4. ubuntu下读取数据库中文乱码解决

    请按如下配置myqsl.cnf (/etc/mysql/mysql.conf.d/mysql.cnf ),然后重启mysql服务,对于web程序,你可以把web所有编码都搞成utf-8[client] ...

  5. IE下get传中文乱码的问题 -- 解决方案 (js)

    W3school 函数 JavaScript 全局对象 定义和用法 encodeURI() 函数可把字符串作为 URI 进行编码. 语法 encodeURI(URIstring) 参数 描述 URIs ...

  6. ubuntu文本模式/终端中文乱码解决

    ubuntu文本模式/终端中文乱码解决 1.Alt+Ctrl+F1 进入第一个终端tty1,发现中文乱码. 2.安装zhcon. sudo apt-get install zhcon3 输入下面命令, ...

  7. Linux 解决Linux下火狐浏览器中文乱码成方块显示问题

    解决Linux下火狐浏览器中文乱码成方块显示问题 by:授客 QQ:1033553122   测试环境: CentOS-6.0-x86_64 问题描述: 浏览器页面显示如下   解决方法: 安装中文支 ...

  8. windows下git bash中文乱码解决办法

    一.解决办法1:(直接上图) 1.在git bash下,右键 出现下图,选择options: 2.选择“Text” 3.将“Character set”设置为  UTF-8 转:windows下git ...

  9. [转]Git for windows 下vim解决中文乱码的有关问题

    Git for windows 下vim解决中文乱码的问题 原文链接:Git for windows 下vim解决中文乱码的有关问题 1.右键打开Git bash: 2.cd ~ 3.vim .vim ...

随机推荐

  1. 【转】Mysql 存储引擎中InnoDB与Myisam的主要区别

    1, 事务处理 innodb 支持事务功能,myisam 不支持. Myisam 的执行速度更快,性能更好.   2,select ,update ,insert ,delete 操作   MyISA ...

  2. 文件与base64二进制转换

    /// <summary> /// 文件转换为Base64二进制流 /// </summary> /// <param name="FilePath" ...

  3. Jade之Case

    Case jade中的case类似js中的switch语句. 当前一个when中无语句的时候,将一直往下直至遇到一个有语句的when才跳出. jade: - var friends = 10 case ...

  4. HDU 5023 A Corrupt Mayor's Performance Art (据说是线段树)

    题意:给定一个1-n的墙,然后有两种操作,一种是P l ,r, a 把l-r的墙都染成a这种颜色,另一种是 Q l, r 表示,输出 l-r 区间内的颜色. 析:应该是一个线段树+状态压缩,但是我用s ...

  5. onSaveInstanceState & onRestoreInstanceState

    一.onSaveInstanceState Called to retrieve per-instance state from an activity before being killed so ...

  6. 大数据处理对象CLOG BLOG

    File 文件类的使用 decimal 类型(规范小数的形式)  longtext 类型(存储字符大数据) 存入文本文件到数据库 InputStream FileInputStream CLOG 类的 ...

  7. ASP.NET 连接MySQL数据库 详细步骤

    ASP.NET默认的数据库是MS SQL Server,微软的数据库产品.事实上,如果不计成本因素的话,Windows Server + IIS + MS SQL Server + ASP.NET是网 ...

  8. 用word-break: break-all解决不正确换行问题

    这个在新闻频道存在已久的问题,今天终于把它给解决了! 问题是这样的,当一段文字中有比较长的链接地址,会造成链接地址之前的文字不能正确换行,效果如下: 对应的html代码如下: <p> 如图 ...

  9. UML中依赖(Dependency)和关联(Association)之间的区别

    一般情况下,使用关联(association)来表示像类中的字段等.这个关系是始终存在的,因此你可以随时针对关联项进行访问调用,例如可以始终从 Customer 对象获取 Order 对象.但事实上它 ...

  10. 真实世界:使用WCF扩展在方法调用前初始化环境

    OperationInvoker 介绍 OperationInvoker 是 WCF 运行时模型中在调用最终用户代码前的最后一个扩展点,OperationInvoker 负责最终调用 Service ...