matplotlib 解决中文乱码

matplotlib 如果在mac 上普通安装安装一般中文没有问题,
但是matplot 如果安装在centos 7 并使用anaconda 安装的 中文一般就有问题

原因: centos7缺少 相应的中文字库
matplotlib 也缺少相应的中文字库
解决方法:

  1. 每次编码配置
#coding:utf-8
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
#有中文出现的情况,需要u'内容'

需要看看 我在科赛 看到人家明明支持 微软雅黑,matplotlib 中文正常 seaborn 乱码

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']  # 中文字体设置-黑体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
sns.set(font='Microsoft YaHei')  # 解决Seaborn中文显示问题

不过在我这里失败了。。

[2]. 添加字库文件,配置字库路径,刷新 ,并在编码中配置

import matplotlib
from matplotlib.font_manager import *
matplotlib.rcParams['axes.unicode_minus']=False
font_rc = {'family': 'WenQuanYi Zen Hei Mono',
           'weight': 'normal',
           'size'  : 22}
matplotlib.rc('font', **font_rc)

参考: https://www.jianshu.com/p/7b7a3e73ef21

  1. 下载字库文件
    http://font.chinaz.com/130130474870.htm

建议自己先解压好,然后再上传到服务器 上

  1. 配置centos7 安装字库 文件 刷新 识别
    在 /usr/share/fonts 路径下创建存放此字体的文件夹yourfontdir,并下载的ttf文件复制到yourfontdir中(可以给文件改个英文名,方便操作)
    我改成了 mullerfont.ttf
sudo -s
cd /usr/share/fonts/
mkdir yifont
cd yifont
#生成字体索引信息. 会显示字体的font-family
sudo mkfontscale     ## 必须有这步!!
sudo mkfontdir    ## 必须有这步!! 否则matplot还是识别不到
#更新字体缓存:  ## 必须有这步!!
fc-cache

fc-list |grep mullerfont
 ## /usr/share/fonts/muller/mullerfont.ttf: WenQuanYi Zen Hei Mono:style=Medium

3.找到 matplotlib 的路径 并修改 其配置文件 ,并删除matplot 缓存

查看 matplot 支持的字体

from matplotlib.font_manager import FontManager
import subprocess

fm = FontManager()
mat_fonts = set(f.name for f in fm.ttflist)
mat_fonts
import matplotlib
matplotlib.matplotlib_fname()
### '/root/miniconda3/envs/condaEnv/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc'
cd /root/miniconda3/envs/condaEnv/lib/python3.6/site-packages/matplotlib/mpl-data/
vi  matplotlibrc

###剩下的比较关键 ,修改成这个样子,有一个事情我不确定  这个配置文件单个# 好像不是注释,##应该是注释
#font.family         : sans-serif
font.serif          : DejaVu Serif, WenQuanYi Zen Hei Mono, ....##添加WenQuanYi Zen Hei Mono字体声明

font.sans-serif     : DejaVu Sans, WenQuanYi Zen Hei Mono,   ....##添加WenQuanYi Zen Hei Mono字体声明

axes.unicode_minus  : False ## 322 line

然后把 新添加的字体copy到matplot的字体文件目录中,以你实际目录为准

cd /root/miniconda3/envs/condaEnv/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf

cp /usr/share/fonts/muller/mullerfont.ttf ./

并删除相关cache
rm -rf ~/.cache/matplotlib

然后再代码中声明

import matplotlib
from matplotlib.font_manager import *
matplotlib.rcParams['axes.unicode_minus']=False
font_rc = {'family': 'WenQuanYi Zen Hei Mono',
           'weight': 'normal',
           'size'  : 22}
matplotlib.rc('font', **font_rc)

就可以用了,其实我个人 认为我配置的不算成功

3.参考这个试试
https://blog.csdn.net/dgatiger/article/details/50414549

https://segmentfault.com/a/1190000005144275

matplotlib 在mac conda 也有中文乱码的问题
1.下载字体
2.查找conda的matplot的路径
3.将字体ttf 导入到matplot 的字体库目录
4.删除 matplot的缓存
5.修改matplot的配置文件 很重要
6.重启conda jupyter
https://blog.csdn.net/jsjxiaobing/article/details/78973142

这里所有的操作都是以黑体字体为例
一. 准备一个中文字体
二. 清除字体缓存
MAC默认的缓存目录
~/.matplotlib/
1
三. 添加字体到 matplotlib 中

  1. 添加字体文件 matplotlib的默认安装目录在
    /anaconda2/lib/python2.7/site-packages/matplotlib/mpl-data
    1
    把字体放在相应的目录fonts/ttf中即可
  2. 编辑配置文件 matplotlibrc
    找到 font.sans-serif,默认情况下配置如下:

    font.sans-serif :DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

1
修改为:
font.sans-serif : SimHei, DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
1
2
其中 SimHei,为我们准备的中文字体
四重启 Anaconda
然后在代码中添加下边语句
#!/usr/bin/python
# -- coding: UTF-8 --
1
2
重新运行代码即可在图标中显示中文


作者:杨小兵
来源:CSDN
原文:https://blog.csdn.net/jsjxiaobing/article/details/78973142
版权声明:本文为博主原创文章,转载请附上博文链接!

  1. 下载SimHei.ttf字体
    http://www.fontpalace.com/font-details/SimHei/)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,829评论 1 331
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,603评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,846评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,600评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,780评论 3 272
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,695评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,136评论 2 293
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,862评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,453评论 0 229
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,942评论 2 233
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,347评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,790评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,293评论 3 221
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,839评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,448评论 0 181
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,564评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,623评论 2 249

推荐阅读更多精彩内容