python matplotlib 图片显示中文

在Linux 环境中,使用matplotlib 显示中文时,总是提示:

/python/stock.py:273: UserWarning: Glyph 33647 (\N{CJK UNIFIED IDEOGRAPH-836F}) missing from current font.
  fig.savefig(self.name + ".jpg", bbox_inches = 'tight')

检查了下, 是使用matplotlib 显示标题时使用了中文,而python中的matplotlib 找不到字体。

解决办法: 

1 从windows 系统中拷贝字体库到linux系统中。

windows 字体库在系统盘 Windows\Fonts目录中,可以选择自己想要使用的中文字体。我选择的是微软雅黑。

   

 注意,这里显示的不是文件,右键复制到另外一个目录中,会发现是三个文件。

 将这三个文件上传到linux目录中。

然后在此目录中执行如下命令

mkfontscale

mkfontdir

fc-cache

执行完毕后,可以使用fc-list | grep msyh 检查是否安装成功。

2. 在python程序中指定字体

安装字体后,还需要在python 的程序代码使用matplotlib时指定字体,要不然代码不知道该用啥。

import matplotlib

matplotlib.rc("font", family = "Microsoft YaHei”)

或者

matplotlib.rcParams['font.sans-serif']=['Microsoft YaHei']

两个选择一个就可以。

3. 经过的一个坑。

第一次按照上述配置完成后,执行时仍报相同的错误。

到linux系统用户的home中,./.cache/matplotlib目录中有一个json文件,查看这个文件没有找到安装的YaHei字体,但fc-list 命令看到字体是已经安装好的。

解决办法: 到.cache目录中,mv matplotlib matplotllib.bk 或者直接删除这个目录即可。

然后重新执行程序就OK了。

此时再次查看这个json文件,就能看到Yahei字体的信息了。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/4785.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】插入排序 (直接插入排序 希尔排序)

文章目录直接插入排序希尔排序直接插入排序 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。 如果tmp比end的数大或者相等,就继续放在end后面。 如果比end的数小&…

Elasticsearch基本安全加上安全的 HTTPS 流量

基本安全加上安全的 HTTPS 流量 在生产环境中,除非您在 HTTP 层启用 TLS,否则某些 Elasticsearch 功能(例如令牌和 API 密钥)将被禁用。这个额外的安全层确保进出集群的所有通信都是安全的。 当您在模式下运行该elasticsearch-ce…

初始React

一.React的诞生1.什么是React?React是一个讲数据渲染为HTML视图的来源Js库,用于构建用户界面的JS库。在以前的学习中构建用户界面的常用操作步骤:发送请求获取数据处理数据(过滤,整理格式等)操作DOM呈现页面2.React诞…

《SpringBoot》第02章 自动配置机制(一) 项目启动

前言 关于SpringBoot,最大的特点就是开箱即用,通过自动配置机制,遵守约定大于配置这个准则,那么这个是如何实现的呢? 本章首先会介绍SpringBoot的启动执行 一、启动第一步:初始化 1.本章概述 当启动Sp…

【论文精读(李沐老师)】Attention Is All You Need

Abstract 在主流的序列转录(给你一个序列,生成另外一个序列)模型中主要是依赖复杂的RNN和CNN,一般包括encoder和decoder两个结构。在性能最好的模型里,通常使用注意力机制连接encoder和decoder。 (本文想做…

HTTP API接口设计规范

1. 所有请求使用POST方法 使用post,相对于get的query string,可以支持复杂类型的请求参数。例如日常项目中碰到get请求参数为数组类型的情况。 便于对请求和响应统一做签名、加密、日志等处理 2. URL规则 URL中只能含有英文,使用英文单词或…

爱玩飞飞加速实现与分析

一步一步找数据。然后根据游戏数据找游戏基址,游戏基址可以遍历所有数据。想学的可以看看。第一步找基础数据,我们用的ce7.1.当然你们也可以用其他版本。网上随便下一个就行。 第一步。打开ce7.1附加游戏进程。 然后看下自己的血量是多少。我们这里是5…

HTML5支持的视频文件格式和音频文件格式有哪些?

在 HTML5 标准中, 我们有了新的 和 标签, 分别可以引入视频和音频文件的标签 那么这些标签又可以支持哪些文件格式呢 ? 格式支持 视频文件格式 MP4:MPEG-4 Part 14,支持H.264编码。几乎所有的浏览器都支持该格式。 WebM:谷歌开发的格式&a…

【最短路算法】第三弹:一文学懂spfa 算法(队列优化的Bellman-Ford算法)

博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:算法、数据结构、Java等相关知识。博主主页: 是瑶瑶子啦所属专栏: 算法 ;该专栏专注于蓝桥杯和ACM等算法竞赛🔥近期目标&…

Java Script

一.初识js 1.与css html的关系 HTML 网页的结构(骨CSS:网页的表现(皮JavaScript :网页的行为2.运行过程 编写的代码是保存在文件上,也就是存储到硬盘(外存zhong)双击以后,html文件浏览器(引用程序)就会读取文件,将文件内容加载到内存中,(数据流向:硬盘->内存)浏览器会解析用…

Linux——基本指令

目录 01. ls 指令 02. pwd命令 03. cd 指令 04. touch指令 05.mkdir指令(重要) 06.rmdir指令 && rm 指令(重要) 07.man指令(重要) 08.cp指令(重要) 09.mv指令&…

react使用craco.config.js完成rem移动端适配(sass)

环境: "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.8.2", "sass": "^1.58.3", yarn add craco/craco postcss-pxtorem lib-flexible 1、创建 craco.…

Java入门知识(超详细讲解)

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:老茶icon 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,计…

REDIS19_zipList压缩列表详解、快递列表 - QuickList、跳表 - SkipList

文章目录①. 压缩列表 - zipList②. 快递列表 - QuickList③. 跳表 - SkipList①. 压缩列表 - zipList ①. ZipList是一种特殊的"双端链表",由一系列特殊编码的连续内存块组成。可以在任意一端进行压入/弹出操作,并且该操作的时间复杂度为O(1) (oxff:11111111) type…

BI界的ChatGPT,它有什么厉害之处

​ChatGPT火了,注册用户从0到1亿,仅用了2个月时间。ChatGPT的背后是大数据、大模型、大算力,是AI的能力集中化的典型场景。那么在BI界,是否也有一款像ChatGPT一样智能BI软件,只要告诉它我们想看啥数据,它噔…

使用 Jpom 自动构建和部署项目

比 Jenkins 简单的项目构建和部署工具。 前端项目自动构建部署 我有几个自用的前端项目,每次修改代码后都需要本地打包再上传到服务器进行部署,感觉有点麻烦,不够自动化,所以一直想找个能够实现自动构建和部署的工具。 这时候可…

智能灯泡灯一Homekit智能家居

传统的灯泡是通过手动打开和关闭开关来工作。有时,它们可以通过声控、触控、红外等方式进行控制,或者带有调光开关,让用户调暗或调亮灯光。 智能灯泡内置有芯片和通信模块,可与手机、家庭智能助手、或其他智能硬件进行通信&#…

Camtasia Studio2023非常好用的电脑录屏软件

如果你需要制作视频教程、游戏直播或其他视频内容,那么一个好的录屏软件就是必不可少的。Camtasia Studio是非常好用的录屏软件,它们可以记录计算机屏幕上发生的所有活动,并可捕捉声音。这些软件还提供了一些视频编辑功能,如裁剪、…

【Python学习笔记(七)】queue队列模块的使用

queue队列模块的使用 前言 为了解决多线程之间共享数据的问题,需要对线程进行加锁或者是线程等待; 更简单的解决这一问题,就需要引入队列的概念: 队列是一种特殊的线性表,是一种先进先出 (FIFO) 的数据结构&#xff…

代码随想录第二十七天(669、108、538、回溯算法介绍)

669. 修剪二叉搜索树 不能简单地通过递归实现代码&#xff0c;比如&#xff1a; class Solution { public:TreeNode* trimBST(TreeNode* root, int low, int high) {if (root nullptr || root->val < low || root->val > high) return nullptr;root->left t…