matplotlib绘图不显示中文
XEP中文网
XEP中文网

Dotblox中文网

matplotlib绘图不显示中文

发布日期:2025-01-04 11:17    点击次数:111

妈的 anaconda 版本太低,导致matlotlib 画图不清晰, 换个就好了,不然图形总是一坨 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2019.07-Linux-x86_64.sh import pandas as pd import numpy as np from pandas import Series, DataFrame %matplotlib inline %config InlineBackend.figure_format = 'svg' 操作 下载字体 :81/201509/tools/simhei(jb51.net).rar _download.php?id=151&part=1237887120 _download.php?id=151&part=1237887120 获取matplotlib的配置文件位置 import matplotlib print(matplotlib.matplotlib_fname()) #获取到文件: /home/data/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc ##修改 vim /home/data/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc font.family : sans-serif font.sans-serif : SimHei, DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif(在font.sans-serif后添加SimHei,用来正常显示中文标签) axes.unicode_minus : False(把True改为False,用来正常显示负号) 获取matplotlib 字体库位置 locate -b 'mpl-data' /home/data/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data /home/data/anaconda3/pkgs/matplotlib-2.2.2-py36h0e671d2_1/lib/python3.6/site-packages/matplotlib/mpl-data 将字体文件复制到这两个路径下。 终端下运行命令fc-list :lang=zh-cn (不知道是干啥的) 找到家目录 .cache/matplotlib目录将matplotlib删除 方法1:改了配置之后并不会生效,需要重新加载字体,在notebook中运行如下代码即可 from matplotlib.font_manager import _rebuild rebuild() #重新加载一下 2)方法2:如果上面方法1试了以后,还不行。重启电脑。 重启机器 以下没有测试过. 下载中文字体: _download.php?id=151&part=1237887120 将下载的字体ttf文件放到matplotlib的字体库位置: anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/ 删除matplotlib的字体缓存,文件位置: mpl.get_cachedir()–>获取字体cache位置的方法(应该有获取其他配置的方法) .cache/matplotlib/fontList.json 该文件删除后,会自动生成,重新查找解析字体库,并生成这个文件 代码中的修改: rcParams[‘font.family’] = ‘sans-serif’ #用来正常显示中文 rcParams[‘font.sans-serif’] = [‘SimHei’] #用来正常显示负号 永久修改: mpl.matplotlib_fname() –>获取配置文件的方法 可在matplotlib的配置文件中修改:/home/rickey/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc 其中有font.family和font.sans-serif的配置项 font.family和font.sans-serif的联系: font.family是一个字体集,其中包含多种字体,比如sans-serif表示中文,中文可以有多种字体,比如正楷,宋体等 SimHei :黑体 SimSun :宋体 以上具体的某一种字体可以在字体网站上下载,并安装。 参考:https://www.jianshu.com/p/240ea3ae0dc9