当前位置: 首页 > 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
至此中文就可以正常显示了。

相关文章:

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

https://www.cnblogs.com/oboth-zl/p/15152508.html 手动安装字体: Debian 和 Ubuntu 下对中文支持比较好的字体有: fonts-droid、ttf-wqy-zenhei 和 ttf-wqy-microhei 等,除了文泉驿系列字体外,比较流行的免费中文字体还有文鼎提…...

小琳AI课堂 掌握强化学习:探索OpenAI Gym的魅力与Python实战

大家好,这里是小琳AI课堂。今天我们来聊聊OpenAI Gym,一个强大的强化学习(Reinforcement Learning, RL)工具包。🌟 OpenAI Gym,由人工智能研究实验室OpenAI创建,为强化学习的研究和开发提供了一…...

1.3 等价类划分法

欢迎大家订阅【软件测试】 专栏,开启你的软件测试学习之旅! 文章目录 前言1 单功能2 等价划分法3 测试步骤3.1 分析需求3.2 设计测试点3.3 将测试点转为可执行用例文档3.4 执行测试3.5 缺陷管理 前言 在现代软件开发中,确保核心功能的有效性…...

概率论原理精解【15】

文章目录 可数性与可分性第二可数空间第二可数空间的定义第二可数空间的性质第二可数空间的例子第二可数空间的例题(理论性质证明)其它性质深入理解第二可数空间 可分空间可分空间的定义可分空间的性质可分空间的例子可分空间的例题在可分空间中&#xf…...

【新手上路】衡石分析平台系统管理手册-安全管理

安全策略​ 安全策略是针对系统中所有用户进行的安全控制,只有系统管理员可以设置。 打开设置->安全策略页面。 登录安全策略​ 启用复杂密码​ 启用之后,用户修改密码时,必须输入符合要求的复杂密码。 密码90天失效​ 密码的有效期…...

【Matlab】matlab 结构体使用方法

在 MATLAB 中,结构体(struct)是一种能够将不同类型和大小的数据组合在一起的容器。它允许你将数据分配给命名的字段(fields),每个字段可以存储不同的数据类型,如数值、字符串、数组、矩阵等。以…...

Mamba YOLO World

论文地址:https://arxiv.org/pdf/2409.08513v1 代码地址: GitHub - Xuan-World/Mamba-YOLO-World: Mamba-YOLO-World: Marrying YOLO-World with Mamba for Open-Vocabulary Detection 开集检测(OVD)旨在检测预定义类别之外的物体…...

JVM 内存模型:堆、栈、方法区讲解

1. 引言 Java 虚拟机(JVM)的内存模型是 Java 程序运行时的基础之一。JVM 内存模型主要包括 堆、栈、和 方法区。它们各自有不同的作用和管理方式,并且影响着程序的性能和稳定性。为了更好地理解 JVM 的内存管理机制,我们将结合电…...

24年蓝桥杯及攻防世界赛题-MISC-2

11 Railfence fliglifcpooaae_hgggrnee_o{cr} 随波逐流编码工具 分为5栏时,解密结果为:flag{railfence_cipher_gogogo} 12 Caesar rxms{kag_tmhq_xqmdzqp_omqemd_qzodkbfuaz} mode1 #12: flag{you_have_learned_caesar_encryption} 随波逐流编码工具 13 base64 base64解…...

openssl-AES-128-CTR加解密char型数组分析

本文章通过对一个unsigned char*类型的数据做简单的加解密操作来学习如何使用openssl库函数。 openssl为3.0.0&#xff0c;对此前版本的很多函数都不兼容。 加解密源码 #include <openssl/evp.h> #include <openssl/err.h> #include <string.h> #include …...

自动化生成与更新 Changelog 文件

在软件开发中&#xff0c;保持 Changelog 文件的更新是一项至关重要的任务。 Changelog 文件记录了项目的每一个重要变更&#xff0c;包括新功能、修复的问题以及任何可能破坏现有功能的变更。对于维护者、贡献者和最终用户来说&#xff0c;这都是一个宝贵的资源。然而&#x…...

(六)WebAPI方法的调用

1.WebAPI中定义的GET、POST方法 [HttpGet(Name "GetWeatherForecast")]public IEnumerable<WeatherForecast> Get(){return Enumerable.Range(1, 5).Select(index > new WeatherForecast{Date DateTime.Now.AddDays(index),TemperatureC Random.Shared.N…...

运维工程师面试整理-故障排查常见故障的排查步骤及方法

故障排查是运维工程师的重要技能之一。在面试中,面试官通常会通过故障排查相关的问题来评估你解决问题的能力和系统思维。以下是关于常见故障的排查步骤及方法的详细内容,帮助你更好地准备面试。 1. 故障排查的基本步骤 1. 问题识别 a. 描述问题:明确问题的具体表现...

OpenAI o1解决了「Quiet-STaR」的挑战吗?

随着OpenAI o1近期的发布&#xff0c;业界讨论o1关联论文最多之一可能是早前这篇斯坦福大学和Notbad AI Inc的研究人员开发的Quiet-STaR&#xff0c;即让AI学会先安静的“思考”再“说话” &#xff0c;回想自己一年前对于这一领域的思考和探索&#xff0c;当初也将这篇论文进行…...

PDF产品册营销推广利器FLBOOK

在互联网高速发展的时代&#xff0c;营销推广已成为企业拓展市场的重要手段。而一款优秀的营销工具&#xff0c;可以为企业带来事半功倍的推广效果。今天&#xff0c;就为大家介绍一款集创意与实用于一体的PDF产品册营销推广利器——FLBOOK&#xff0c;帮助企业轻松提升品牌影响…...

华为OD机试 - 字符串划分(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…...

nginx和php-fpm连接超时的相关配置以及Nginx中的try_files以及root、alias的使用

一、nginx和php-fpm连接超时的相关配置 线上的PHP服务器架构大都是nginx proxy->nginx web->php-fpm。在服务器运行正常&#xff0c;服务器之间的连接正常&#xff0c;未被防火墙阻止的情况下&#xff0c;对这种架构排查504报错时需要注意以下几个地方的参数。 1是nginx…...

在MAC中Ollama开放其他电脑访问

ollama安装完毕后默认只能在本地访问&#xff0c;之前我都是安装其他的软件之后可以结合开放其他端口访问&#xff0c;其实是可以新增或修改下电脑的系统配置&#xff0c;就可以打开端口允许除本机IP或localhost访问。 步骤如下&#xff1a; 1、查看端口&#xff08;默认是&…...

NE555芯片制作的节拍器

NE555芯片的节拍器&#xff0c;以一定的频率发出声音和闪烁灯光&#xff0c;起到节拍指示的作用。...

如何使用 Next.js 进行服务端渲染(Server-Side Rendering, SSR)

文章目录 前言步骤 1: 创建 Next.js 应用步骤 2: 创建页面组件示例页面组件 步骤 3: 自定义 _app.js 文件步骤 4: 自定义 _document.js 文件步骤 5: 运行应用步骤 6: 构建和部署总结 前言 Next.js 本身就支持 SSR 并提供了一系列内置的方法来简化这个过程。下面将详细介绍如何使…...

保姆级教程:在ROS Melodic下,用TEB局部规划器搞定阿克曼小车Gazebo自主导航(附避坑指南)

阿克曼小车Gazebo仿真与TEB局部规划器深度实战指南 当你在Gazebo中看到阿克曼转向结构的小车优雅地绕过障碍物&#xff0c;精准停靠在目标点时&#xff0c;那种成就感是难以言喻的。不同于差速驱动机器人&#xff0c;阿克曼结构的运动学特性为导航栈配置带来了独特挑战。本文将…...

告别Transformer!用TimeKAN在ETTh1数据集上实现SOTA级长时序预测(附PyTorch复现指南)

TimeKAN&#xff1a;用频率分解与轻量架构重塑长时序预测的PyTorch实践指南 时序预测领域正在经历一场静悄悄的革命——当Transformer模型因计算复杂度陷入瓶颈时&#xff0c;一种融合频率分解思想与新型网络架构的解决方案正在ETTh1等基准数据集上刷新纪录。本文将带您深入Tim…...

Qwen3.5-2B辅助Python科学计算环境搭建:NumPy、Pandas与模型集成

Qwen3.5-2B辅助Python科学计算环境搭建&#xff1a;NumPy、Pandas与模型集成 1. 为什么需要Qwen3.5-2B与科学计算环境结合 在数据分析和机器学习工作中&#xff0c;我们经常面临一个痛点&#xff1a;数据处理和报告撰写是两个割裂的环节。传统的工作流是先使用NumPy、Pandas等…...

OpenPAI存储管理完全手册:支持NFS、SMB等多种存储方案

OpenPAI存储管理完全手册&#xff1a;支持NFS、SMB等多种存储方案 【免费下载链接】pai Resource scheduling and cluster management for AI 项目地址: https://gitcode.com/gh_mirrors/pa/pai OpenPAI作为开源AI平台&#xff0c;提供了完整的存储管理解决方案&#xf…...

ScheduledExecutorService 和Timer的区别

一、本质区别TimerJDK 1.3 就有的单线程定时任务内部只有一个线程轮流执行所有任务基于绝对系统时间 System.currentTimeMillis()ScheduledExecutorServiceJDK 1.5 JUC 并发包提供线程池&#xff0c;多个线程执行任务基于相对时间&#xff08;纳秒&#xff09;&#xff0c;不依…...

OpenClaw极简安装:Docker版Qwen3-32B镜像五分钟部署

OpenClaw极简安装&#xff1a;Docker版Qwen3-32B镜像五分钟部署 1. 为什么选择Docker部署OpenClaw 上周我在本地尝试手动部署OpenClaw时&#xff0c;被各种依赖冲突折磨得够呛。从Node.js版本不兼容到CUDA驱动问题&#xff0c;整整浪费了两天时间。直到发现星图平台的Qwen3-3…...

重新安装微信新版本后才发现历史记录文件夹名称不匹配!解决方法

重新 安装/恢复 电脑&#xff0c;安装微信最新版本 记录文件夹变更为&#xff1a;xwechat_files 旧的格式&#xff1a;WeChat Files 找很多方法&#xff0c;以及腾讯官方的说明&#xff0c;无效、费解&#xff0c;来点干货&#xff0c;成功解决经验&#xff1a; &#xff08;1&…...

C语言宏定义封装函数参数的工程实践

1. 宏定义封装函数参数的核心价值在嵌入式开发中&#xff0c;我们经常遇到需要传递大量固定参数的场景。以NXP RT1052 SDK中的GPIO配置为例&#xff0c;每个引脚复用配置需要传递6个参数&#xff0c;其中5个都是固定值。这种场景下&#xff0c;宏定义封装技术能显著提升代码的可…...

youtube上台式机 4k显示器配置

1.相关的网址信息https://www.youtube.com/watch?v66MawsFCgaY2.一个外国人做的相关的展示信息3.相关的配置如下amd r7 9800x3D 处理器显卡是技嘉的显卡 rtx5080 16gb内存的显卡...

C++ lambda 捕获机制与作用域

C lambda 捕获机制与作用域探析 在C11引入的lambda表达式为开发者提供了更灵活的匿名函数实现方式&#xff0c;其核心特性之一是捕获机制&#xff0c;允许lambda访问外部作用域的变量。理解捕获规则与作用域的关系&#xff0c;不仅能避免常见错误&#xff0c;还能提升代码的简…...