matplotlib 如果在mac 上普通安装安装一般中文没有问题,
但是matplot 如果安装在centos 7 并使用anaconda 安装的 中文一般就有问题
原因: centos7缺少 相应的中文字库
matplotlib 也缺少相应的中文字库
解决方法:
- 每次编码配置
#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
建议自己先解压好,然后再上传到服务器 上
- 配置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 中
- 添加字体文件 matplotlib的默认安装目录在
/anaconda2/lib/python2.7/site-packages/matplotlib/mpl-data
1
把字体放在相应的目录fonts/ttf中即可 - 编辑配置文件 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
版权声明:本文为博主原创文章,转载请附上博文链接!
- 下载SimHei.ttf字体
http://www.fontpalace.com/font-details/SimHei/)