当前位置: 首页 > news >正文

解决matplotlib画中文时缺乏中文字体问题。

https://www.cnblogs.com/oboth-zl/p/15152508.html

手动安装字体:
Debian 和 Ubuntu 下对中文支持比较好的字体有: fonts-droid、ttf-wqy-zenhei 和 ttf-wqy-microhei 等,除了文泉驿系列字体外,比较流行的免费中文字体还有文鼎提供的楷体和上海宋,包名分别是: fonts-arphic-ukai 和 fonts-arphic-uming。

$ sudo apt-get install fonts-droid ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming

重要一步:安装完后,使用fc-list可以查看已安装字体,但咱们会发现matplotlib还不能画中文。
删除matplotlib的缓存目录(~/.cache/matplotlib)即可解决。

rm -rf ~/.cache/matplotlib

出现问题

当我们用matplotlib作图时中文乱码,往往会发现中文的文字变成了小方块。

import matplotlib.pyplot as plt
plt.rcParams[‘font.sans-serif’]=[‘SimHei’]
尽管我们指定了中文字体。这时可能会因为系统中缺失中文字体而导致不能显示。具体表现就是,运行过程中报warning:

lib/python3.7/site-packages/matplotlib/font_manager.py:1241: UserWarning: findfont: Font family [‘sans-serif’] not found. Falling back to DejaVu Sans.
(prop.get_family(), self.defaultFamily[fontext]))

解决问题

1、首选安装、拷贝对应字体到系统中。比如这里我拷贝Windows系统中的黑体(simhei.ttf)到/usr/share/fonts/windows_fonts目录。

mkdir /usr/share/fonts/windows_fonts
sudo mv ~/simhei.ttf /usr/share/fonts/windows_fonts
接下来将目录中的字体注册到系统中,让系统能够识别到这些新字体。

cd /usr/share/fonts/windows_fonts
mkfontscale
mkfontdir
fc-cache
此时再用下面的命令查看已经安装好的字体:

fc-list #列出系统识别到的已安装字体。
我们可以看到这么一条:

此时我们会发现matplotlib作出的图中中文依旧无法正常显示,这种情况只需删除matplotlib的缓存目录(~/.cache/matplotlib)即可解决。

rm -rf ~/.cache/matplotlib
至此中文就可以正常显示了。

http://www.lryc.cn/news/441701.html

相关文章:

  • 小琳AI课堂 掌握强化学习:探索OpenAI Gym的魅力与Python实战
  • 1.3 等价类划分法
  • 概率论原理精解【15】
  • 【新手上路】衡石分析平台系统管理手册-安全管理
  • 【Matlab】matlab 结构体使用方法
  • Mamba YOLO World
  • JVM 内存模型:堆、栈、方法区讲解
  • 24年蓝桥杯及攻防世界赛题-MISC-2
  • openssl-AES-128-CTR加解密char型数组分析
  • 自动化生成与更新 Changelog 文件
  • (六)WebAPI方法的调用
  • 运维工程师面试整理-故障排查常见故障的排查步骤及方法
  • OpenAI o1解决了「Quiet-STaR」的挑战吗?
  • PDF产品册营销推广利器FLBOOK
  • 华为OD机试 - 字符串划分(Python/JS/C/C++ 2024 E卷 100分)
  • nginx和php-fpm连接超时的相关配置以及Nginx中的try_files以及root、alias的使用
  • 在MAC中Ollama开放其他电脑访问
  • NE555芯片制作的节拍器
  • 如何使用 Next.js 进行服务端渲染(Server-Side Rendering, SSR)
  • 【machine learning-八-可视化loss funciton】
  • Android 将EasyPermissions进一步封装,使得动态权限申请更加简明
  • 我的AI工具箱Tauri版-VideoReapeat视频解说复述克隆
  • MySQL5.7.42高可用MHA搭建及故障切换演示
  • 快速搭建最简单的前端项目vue+View UI Plus
  • 倍增练习(1)
  • MATLAB 在数学建模中的深入应用:从基础到高级实践
  • Unity 设计模式 之 【什么是设计模式】/ 【为什么要使用设计模式】/ 【架构和设计模式的区别】
  • [数据集][目标检测]智慧交通铁路异物入侵检测数据集VOC+YOLO格式802张7类别
  • 飞驰云联FTP替代方案:安全高效文件传输的新选择
  • Hive内置集合函数-size,map_keys,map_values,sort_array,array_contains