解决Linux环境下Jupyter Lab平台使用python的Matplotlib函数库绘图时无法识别中文字体问题——永久识别方法

一、在Windows环境下下载相应字体

SimHei字体为例,现在下面的网址中下载该字体到本地电脑

http://xiazaiziti.com/210356.html

如下图,通过X-ftp(Windows与Linux服务器传输文件的工具)传输到Linux服务器相应目录中,我的参考目录是:

/root/miniconda3/envs/rapids-23.02/lib/python3.10/site-packages/matplotlib/mpl-data/fonts/ttf
参考目录

二、更改matplotlibrc配置文件

1、在X-shell(或者其他Linux服务器远程终端)中打开matplotlibrc文件,

可以在python编译器中输入下面两行代码即可找到该文件的位置

import matplotlib
matplotlib.matplotlib_fname()

输出见下图
在这里插入图片描述

从输出可以看出我的参考路径为

/root/miniconda3/envs/rapids-23.02/lib/python3.10/site-packages/matplotlib/mpl-data/matplotlibrc

2、在X-shell中输入下面一行命令

vi /root/miniconda3/envs/rapids-23.02/lib/python3.10/site-packages/matplotlib/mpl-data/matplotlibrc

就会出现一个下面的界面,我截取了一部分

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uE0hRoCl-1680662233377)(Jupyter_python识别中文字体.assets/image-20230405101147032.png)]

然后找到下图红色方框圈住的位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gHnLFvso-1680662233377)(Jupyter_python识别中文字体.assets/1680660904783.jpg)]

先将三个红色方框圈住部分的注释去掉,然后在font.seriffont.sans-serif的冒号后面添加上下载的字体名字,注意一定要看清名字大小写,最好复制粘贴过来 ,编辑参考见下图。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R1gVgv30-1680662233378)(Jupyter_python识别中文字体.assets/1680661245299.jpg)]
然后找到axes.unicode_minus开头的一行,将其注释去掉,且将其后面的True更改为false即可,具体如下图。

在这里插入图片描述

然后按键esc进入文件命令模式,输入

:wq

即可保存文件并退出。

三、清除matplotlibrc缓存文件

在X-shell中输入下面两行命令

cd ~/.cache
rm -rf  matplotlib

清除掉在修改matplotlibrc配置文件之前的缓存文件。

四、重新打开Jupyter Lab

快捷键Ctrl + C关闭掉之前Jupyter Lab的环境,然后重新打开输入命令打开Jupyter Lab

jupyter lab --allow-root

然后再重新运行画图的python代码,中文就可以识别啦!!!附上效果图

在这里插入图片描述

也可以利用输入python代码的形式确认字体有没有被成功导入到Jupyter Lab中,在python编译器中输入

from matplotlib import font_manager
a = sorted([f.name for f in font_manager.fontManager.ttflist])
for i in a:
    print(i)

在输出中如果看到simhei字体即成功导入,也就可以识别啦!
在这里插入图片描述

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
JupyterLab使用Matplotlib库中的`imshow`函数来同显示三张灰度图像的步骤如下: 1. 首先,导入必要的库: ```python import matplotlib.pyplot as plt from matplotlib.image import imread ``` 2. 读取三张灰度图像: ```python img1 = imread('gray_image1.jpg', cmap='gray') img2 = imread('gray_image2.jpg', cmap='gray') img3 = imread('gray_image3.jpg', cmap='gray') ``` 这里假设您已经将三张灰度图像分别保存在'gray_image1.jpg','gray_image2.jpg'和'gray_image3.jpg'文件中,且这些文件位于您的JupyterLab工作目录中。 3. 创建一个大小为1x3的子图布局,并在每个子图中显示一张灰度图像: ```python fig, axs = plt.subplots(1, 3, figsize=(10, 5)) axs[0].imshow(img1, cmap='gray') axs[0].set_title('Image 1', size=10) axs[0].axis('off') axs[1].imshow(img2, cmap='gray') axs[1].set_title('Image 2', size=10) axs[1].axis('off') axs[2].imshow(img3, cmap='gray') axs[2].set_title('Image 3', size=10) axs[2].axis('off') ``` `fig, axs = plt.subplots(1, 3, figsize=(10, 5))`语句创建一个大小为1x3的子图布局,并将返回的`fig`和包含三个子图对象的`axs`数组分别存储在变量中。然后,使用`imshow`函数在每个子图中显示一张灰度图像,并使用`set_title`函数为每个子图添加标题。最后,使用`axis`函数关闭坐标轴的显示。 4. 显示图像: ```python plt.show() ``` 这个语句将在JupyterLab中显示图像。 完整的示例代码如下: ```python import matplotlib.pyplot as plt from matplotlib.image import imread # 读取三张灰度图像 img1 = imread('gray_image1.jpg', cmap='gray') img2 = imread('gray_image2.jpg', cmap='gray') img3 = imread('gray_image3.jpg', cmap='gray') # 创建一个大小为1x3的子图布局,并在每个子图中显示一张灰度图像 fig, axs = plt.subplots(1, 3, figsize=(10, 5)) axs[0].imshow(img1, cmap='gray') axs[0].set_title('Image 1', size=10) axs[0].axis('off') axs[1].imshow(img2, cmap='gray') axs[1].set_title('Image 2', size=10) axs[1].axis('off') axs[2].imshow(img3, cmap='gray') axs[2].set_title('Image 3', size=10) axs[2].axis('off') # 显示图像 plt.show() ``` 注意,您需要将'gray_image1.jpg'、'gray_image2.jpg'和'gray_image3.jpg'替换为您自己的图像文件名,并确保这些图像文件与您的JupyterLab工作目录中的Python代码文件在同一目录下。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兔子没蛀牙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值