matplotlib如何设置中文为宋体,英文为新罗马Times New Roman

问题描述

论文附图通常需要将中文设置为宋体,英文设置为新罗马字体(Times New Roman)。matplotlib中可以这样设置字体:

plt.rcParams['font.sans-serif'] = ['SimSun']
plt.rcParams['font.sans-serif'] = ['Times New Roman']

但是这样设置后者会将前者覆盖,只会显示一种字体。以下是摸索出来的一种不太优雅的解决方案,但可以解决问题。(目前没探索到更优的方案)

解决方案

以下是一个简单的示例,可以作为一个代码模板使用。代码中展示了以下三种情况:

  • 对于中文字符,正常直接使用引号括起来即可;
  • 对于英文字符,传入参数fontproperties='Times New Roman'即可;
  • 对于中英文混合字符,将英文字符的部分单独使用$\mathrm{}$括起来。(若不写\mathrm{}则会是斜体的效果)
import matplotlib.pyplot as plt
from matplotlib import rcParams# 首先配置字体信息
config = {"font.family": 'serif',"font.size": 12,"mathtext.fontset": 'stix',"font.serif": ['SimSun'],
}
rcParams.update(config)x = [1, 2, 3]
y = [1, 2, 3]# 将刻度显示设置为新罗马字体
plt.xticks(fontproperties='Times New Roman')
plt.yticks(fontproperties='Times New Roman')# 中英文字符混合
plt.title('示意图$\mathrm{ABC}$', size=18)
# 仅包含中文字符
plt.xlabel('日期', size=14)
# 仅包含英文字符
plt.ylabel('y', fontproperties='Times New Roman', size=14)plt.plot(x, y)
plt.show()

示例图

以上代码的运行结果如下所示:
在这里插入图片描述
成功实现中文宋体,英文Times New Roman。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv8_pose-Openvino和ONNXRuntime推理【CPU】

纯检测系列: YOLOv5-Openvino和ONNXRuntime推理【CPU】 YOLOv6-Openvino和ONNXRuntime推理【CPU】 YOLOv8-Openvino和ONNXRuntime推理【CPU】 YOLOv7-Openvino和ONNXRuntime推理【CPU】 YOLOv9-Openvino和ONNXRuntime推理【CPU】 跟踪系列: YOLOv5/6/7-O…

Java项目:52 springboot基于SpringBoot的旅游网站的设计与实现013

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 旅游网站主要功能如下: 1.用户管理:注册、登录、退出、修改密码; 2.分类显示:显示旅游路线的分类&am…

openstack(T)启动实例状态为错误,如何解决

---基本服务得是正常的 ---1.在web界面看是什么错误 点击你的实例名称,在概况里面去查看 当时我的error :编码500 消息 No valid host was found. 错误原因 1:资源不足 2:未开启虚拟机cpu虚拟化 解决: 1.资源不…

百度飞桨大模型训练营:人工智能与大语言模型

文章目录 生成式AI、提示词工程和零代码应用开发人工智能概念机器学习深度学习 大语言模型大语言模型为什么大大语言模型为什么通用大语言模型的灵魂Transformer之前Transformer的优势 Transformer内部原理第一步——数据预处理第二步——编码器第三步——解码器第四步——Line…

人工智能技术应用笔记(七):速度快一倍!低显卡用户福音来了——可本地部署的轻量级SD(Stable Diffusion Forge)

本篇为《人工智能技术应用》专栏的第七篇。希望以学习笔记的形式和大家一起了解和探索人工智能技术的实际应用。 《本地部署轻量级SD实操》 今天介绍一款在原stable diffusion webui基础上经过代码优化,结构重组之后的轻量级产品————Stable Diffusion WebUI For…

java-ssm-jsp基于java的校园疫情管理系统

java-ssm-jsp基于java的校园疫情管理系统 获取源码——》公主号:计算机专业毕设大全

前端文件流、切片下载和上传

前端文件流、切片下载和上传技术在提升文件传输效率和优化用户体验方面发挥着关键作用。这些技术不仅可以帮助解决大文件传输过程中可能遇到的问题,如网络超时、内存溢出等,还能通过并行传输和断点续传等功能,提高传输速度和稳定性。 一、前端…

java算法第23天 | ● 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树

669. 修剪二叉搜索树 思路: 这道题和删除节点异曲同工。不过要注意避坑:当遍历到不在范围内的节点时,不要直接返回null或直接返回其左或右孩子,而是继续对其左或右孩子做递归。 /*** Definition for a binary tree node.* public…

显示蛋白质的疏水贴片/疏水口袋(hydrophobic patch)

首先以一篇文章为例:Langmuir 2022, 38, 6191−6200 其中有图: 其中黄色部分为输水口袋。 用到的软件为:SWISS 首先打开软件 1.file-open pdb-file 2.可以通过控制面板选择要忽视的残基(点击残基,红色即为选中) 点击这里: 选中“ignore selected residues”。 3. …

探索CorelDRAW软件2024最新中文版的强大魅力,让你的电脑数码设计更上一层楼!

在当今日益发展的数字化时代,设计已成为连接创意与现实之间的桥梁,而CorelDRAW软件则是设计师们手中的得力助手。特别是随着CorelDRAW 2024最新中文版的发布,这一设计工具的魅力和功能得到了进一步的提升,为广大设计师们提供了前所…

使用js地图选点

主要使用到的类: 1. BMap 基类(不多说,自己看文档) 2. Polygon (多边形覆盖物) 3. Marker(热点标注) 4. Polyline (绘制折线) 简单说下思路: 第一步: 对 Map 添加click事件。 获取当前点击的 坐标并生成 热点。 将热点 存储…

功能问题:如何用Docker部署一个后端项目?

大家好,我是大澈! 本文约1800字,整篇阅读大约需要3分钟。 关注微信公众号:“程序员大澈”,免费加入问答群,一起交流技术难题与未来! 现在关注公众号,免费送你 ”前后端入行大礼包…