ubuntu下matplotlib画图中文乱码问题

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

时间: 2024-08-17 15:22:10

ubuntu下matplotlib画图中文乱码问题的相关文章

Ubuntu环境下 matplotlib 图例中文乱码

本文前提条件是 已经 安装好 matplotlib  ,  至于 matplotlib 是什么, 怎么安装, 本文不予介绍. 首先在  Windows  盘区下  找到   微软雅黑   的字体文件: 其次,找到 matplotlab  字体库  文件夹    或者   系统字体库文件夹 matplotlab  字体库  文件夹 系统字体库文件夹 把字体文件拷贝到这两个路径下的任何一个都可以. 然后,找到 matplotlib  配置文件 可以直接修改该文件,或者 然后,  修改配置文件. 编辑

ORACLE 11G中PLSQL中文显示乱码、Linux下sqlplus查询中文乱码

问题描述: 本地是win7操作系统,cmd里面sqlplus进去连接oracle数据库,中文可以正常显示,但是plsql连接oracle数据库,中文显示乱码,还有xshell远程连接oracle服务器登录进去使用sqlplus登录也显示中文乱码. 1.检查windows7下面cmd里面sqlplus中oracle server端的字符集. 打开cmd,用sqlplus登录,输入下面SQL查询服务端的字符集. SQL> select userenv('language') fromdual; US

《转》Git for windows 下vim解决中文乱码的有关问题

Git for windows 下vim解决中文乱码的问题 原文链接:Git for windows 下vim解决中文乱码的有关问题 1.右键打开Git bash: 2.cd ~ 3.vim .vimrc 4.内容如下: "这个档案的双引号 (") 是批注 set nu "可以在每一行的最前面显示行号啦! set fencs=utf-8,gbk,utf-16,utf-32,ucs-bom

matplotlib画图出现乱码情况

python3使用matplotlib画图,因python3默认使用中unicode编码,所以在写代码时不再需要写 plt.xlabel(u’人数’),而是直接写plt.xlabel(‘人数’). 注意: 在有中文的地方加上中文相关的字体,不然会因为没有字体显示成放框,因为默认的使用的字体里没有中文的,使用例子如下: # -*- coding: utf-8 -*- import pandas as pd import numpy as np from pandas import Series,D

linux下birt 图表中文乱码问题

birtChart 在linux下中文乱码的问题是Java虚拟机找不到中文字库字体文件造成的. 步骤: 1.把.bash_profile中的export LANG=zh_CN.GB2312修改为: export LANG=zh_CN.GB18030.因为gb2312不支持一些特殊的汉字. 2.在在生成的chart图表的XML Source里修改字体:把SansSerif修改为SimSun. 3.找到一个能在linux下使用的中文字体,可以是Windows 7下的c:\windows\fonts\

ubuntu纯文字界面中文乱码的解决方案

问题: 纯文字界面中文乱码 解决方案: 很简单,安装fbterm就OK! 具体如下: 安装命令:sudo apt-get install fbterm xfonts-xqy 然后运行:sudo fbterm 退出:在控制台中按 Ctrl+Alt + E 或输入exit退出 额外说明: 当然fbterm功能是很强大的,支持字体样式.大小.样色设置等,修改配置文件.fbtermrc即可,在控制台输入以下命令: sudo gedit~/.fbtermrc 要运行 fbterm,首先检查当前用户是否在

解决在Ubuntu下打开txt文件乱码的问题

在装双系统的情况下,由于windows默认编码为GBK,而Ubuntu编码为UTF-8,所以在Ubuntu下打开Winodws的txt文件时,可能出现乱码问题. 解决的方法如下: iconv -f GBK -t UTF-8 gbk.txt就可以在终端看到正常的文件了 也可以将转换的文件存储到另一个文件里iconv -f GBK -t UTF-8 gbk.txt >gbk2utf8.txt就可以把转换后的内容存入gbk2utf8.txt供以后查看

linux下vim编辑器中文乱码

今天在centos7中用vim编辑html网页,发现中文乱码.于是百度了一番,发现大家似乎都是围绕为什么会发生中文乱码,但解决方法说的却不是很到位.乱码无非是字符编码.解码方式出现了问题,我们需要找到vim的配置文件关于字符编码的地方,即vimrc文件.重点就是vimrc配置文件在哪?网友大多数没有提到. 其实挺简单的 1.在linux(我的是centos7)终端中输入:vim.看到vim的欢迎界面 vim        2.在命令模式下输入命令,即可看到vimrc配置文件的路径 :versio

ubuntu下如何设置中文输入法

许多朋友在用ubuntu操作系统时,因没有中文输入法而苦恼!今天我就和大家分享一下如何在ubuntu下设置如输入法的简单方法: 1 在任务栏的右上角设置选项-——>system settings——>languge sepport——>install/Remove languges 中可以选择设置! 2 如果以上方式行不通的朋友可以选择这种在终端设置的方法(我也是这样设置的): a 通过ctrl+alt+T 调出终端: b 安装ibus框架 终端输入以下命令: sudo apt-get