解决docker部署jupylab中matplotlib作图时中文显示问题

解决方法

1.下载字体
字体下载

2.找到目录

import  matplotlib
matplotlib.matplotlib_fname()

我的是这个目录:
/opt/conda/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc
记住这个目录

3.进入容器

docker exec --user root -it 容器ID /bin/bash

4.导入字体
/opt/conda/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc
步骤2中所找到的目录
/opt/conda/lib/python3.9/site-packages/matplotlib/mpl-data/fonts/ttf
将下载的字体里面的 simhei.ttf 文件 导入到这里面来

5.编辑配置文件

vim /opt/conda/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc

步骤2中的目录

如果出现vim : command not found
可以参考我的另外一篇博客
解决docker容器内无法vim

在配置文件中找到

font.family:  sans-serif  '''去掉注释'''
font.serif:    simhei, DejaVu Serif, Bitstream Vera Serif '''将下载导入的字体添加进去,一定要跟步骤4中导入的字体名称一样'''
axes.unicode_minus: False '''去掉注释将True 改为 False'''

6.清除字体缓存文件

'''找到字体缓存路径'''
import matplotlib
matplotlib.get_cachedir()
'''清除'''
rm rf 缓存路径

7.重启容器

'''退出容器内部'''
exit
'''重启容器'''
docker restart 容器ID

8.添加代码
在需要画图的代码中添加如下代码

plt.rcParams['font.sans-serif'] = ['simhei']
plt.rcParams['axes.unicode_minus'] = False

问题解决

你可能感兴趣的:(docker,jupyter)