Linux下解决matplotlib中文显示问题
程序员文章站
2022-03-20 18:03:23
...
在Windows中, 如果想跟换matplotlib的字体, 仅需要这样就可以了
import matplotlib as mat
mat.rcParams['font.family'] = 'Kaiti'
mat.rcParams['font.size'] = 16
mat.rcParams['axes.unicode_minus'] = False
在Linux中, 除了上面的代码之外, 还要做一些修改
-
查找当前系统下所有中文字体:
[email protected]:/$ fc-list :lang=zh /usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK JP,Noto Sans CJK JP Bold:style=Bold,Regular /usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK SC:style=Bold /usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK TC:style=Bold /usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK JP:style=Bold /usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK KR:style=Bold /usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK KR,Noto Sans Mono CJK KR Bold:style=Bold,Regular /usr/share/fonts/truetype/wqy/wqy-microhei.ttc: 文泉驿微米黑,文泉驛微米黑,WenQuanYi Micro Hei:style=Regular /usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK JP,Noto Sans Mono CJK JP Bold:style=Bold,Regular /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK JP,Noto Sans CJK JP Regular:style=Regular /usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK TC,Noto Sans Mono CJK TC Bold:style=Bold,Regular /usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK SC:style=Regular /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK KR,Noto Sans CJK KR Regular:style=Regular /usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK TC:style=Regular /usr/share/fonts/truetype/unifont/unifont.ttf: Unifont:style=Medium /usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK JP:style=Regular /usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK KR:style=Regular /usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK SC,Noto Sans Mono CJK SC Bold:style=Bold,Regular /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK JP,Noto Sans Mono CJK JP Regular:style=Regular /usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK TC,Noto Sans CJK TC Bold:style=Bold,Regular /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK KR,Noto Sans Mono CJK KR Regular:style=Regular /usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK SC,Noto Sans CJK SC Bold:style=Bold,Regular /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK SC,Noto Sans CJK SC Regular:style=Regular /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK TC,Noto Sans CJK TC Regular:style=Regular /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK TC,Noto Sans Mono CJK TC Regular:style=Regular /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK SC,Noto Sans Mono CJK SC Regular:style=Regular /usr/share/fonts/truetype/wqy/wqy-microhei.ttc: 文泉驿等宽微米黑,文泉驛等寬微米黑,WenQuanYi Micro Hei Mono:style=Regular /usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK KR,Noto Sans CJK KR Bold:style=Bold,Regular
此命令可以列出当前系统下所有中文字体的位置, 字体名
-
将想要的字体复制到mat的字体目录
-
获取mat的字体配置文件
import matplotlib as mat print(mat.matplotlib_fname())
例如 我的字体配置文件: /home/pineapple/.local/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc
那么字体目录就是: /usr/share/fonts/truetype/wqy/wqy-microhei.ttc /home/pineapple/.local/lib/python3.9/site-packages/matplotlib/mpl-data/fonts/
-
比如我想设置 文泉驿等宽微米黑,文泉驛等寬微米黑,WenQuanYi Micro Hei Mono 这个字体,
复制移动字体文件 到mat的字体目录
[email protected]:/$ cp /usr/share/fonts/truetype/wqy/wqy-microhei.ttc /home/pineapple/.local/lib/python3.9/site-packages/matplotlib/mpl-data/fonts/
-
修改配置文件
找到 font.sans-serif (257行), 将字体名加进去, 这样:
#font.sans-serif: WenQuanYi Micro Hei Mono, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
保存退出, 重启编译器
-
上一篇: java基础1 #学习日记3
下一篇: 数据分析学习笔记3
推荐阅读
-
Ubuntu下MySQL中文乱码的问题解决
-
HTML5在IE10、火狐下中文乱码问题的解决方法
-
完美解决Python matplotlib绘图时汉字显示不正常的问题
-
jsp下显示中文文件名及绝对路径下的图片解决方法
-
linux下tar命令遇到error:"Error exit delayed from previous errors"的问题及解决
-
Broadcom网卡linux系统下无法连接到网络问题的解决办法
-
Linux系统下中文显示乱码怎么改回显示英文状态?
-
Linux下IP设置脚本的实例及遇到问题解决办法
-
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
-
Ubuntu下MySQL中文乱码的问题解决