Matplotlib中英文使用不同字体的最优解

中英文使用不同字体,我们需要解决两个需求:

  • 第一个需求:要用中文字体显示中文,不能全部都是框框。
  • 第二个需求:横纵坐标的数字用英文字体显示,英文用英语字体显示。

方法很简单,只需要添加一行,前者是matplolib默认的英文字体,后者是中文字体黑体:

plt.rcParams['font.family'] = ['DejaVu Sans','SimHei']

以此类推可以把英文字体改成SimSun,英文字体改成Times New Roman
要查看自己的font family,可以看这里

from matplotlib.font_manager import FontManager
mpl_fonts = set(f.name for f in FontManager().ttflist)
print('all font list get from matplotlib.font_manager:')
for f in sorted(mpl_fonts):
    print('\t' + f)

具体示例:

import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['DejaVu Sans','SimHei']
# 绘制图像
plt.plot([1, 2, 3, 4, 5], [1, 4, 9, 16, 25])
plt.title('中文和English')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.show()

效果(图中英文为DejaVu Sans,中文为宋体):

在这里插入图片描述

全局是中文字体,公式为英文字体

import matplotlib.pyplot as plt
plt.rcParams['mathtext.fontset'] = 'stix'  # 设置数学公式字体为stix
plt.rcParams['font.family'] = ['SimSun']
# 绘制图像
plt.plot([1, 2, 3, 4, 5], [1, 4, 9, 16, 25])
plt.title('我是中文English$a+b=c$')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.show()

这个时候只有公式是英文字体:

在这里插入图片描述

python中用matplotlib库画图时,把中文设置为宋体,英文设置为Time New Roman,有时候还需要显示公式。设置方法如下:

import matplotlib.pyplot as plt
from matplotlib import rcParams
import numpy as np

config = {
    "font.family":'serif',
    "font.size": 18,
    "mathtext.fontset":'stix',
    "font.serif": ['SimSun'],
}
rcParams.update(config)

x = np.random.random((10,))


plt.plot(x,label='随机数')
plt.title('中文:宋体 \n 英文:$\mathrm{Times \; New \; Roman}$ \n 公式: $\\alpha_i + \\beta_i = \\gamma^k$')
plt.xlabel('横坐标')
plt.ylabel('纵坐标')
plt.legend()
plt.yticks(fontproperties='Times New Roman', size=18)
plt.xticks(fontproperties='Times New Roman', size=18)
plt.show()

在这里插入图片描述

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

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

相关文章

RabbitMQ之Plugins插件----AMQP对接MQTT

1.启用插件 rabbitmq-plugins enable rabbitmq_mqtt 2.检查是否启动成功,打开rabbitmq后台 3.概念: AMQP是由交换器和queue队列组成的消息队列机制,MQTT是由订阅主题组成的消息机制 1.MQTT创建连接时会向rabbitmq创建一个自己的queue&…

SpringCloud之网关组件Gateway学习

SpringCloud之网关组件Gateway学习 GateWay简介 Spring Cloud Gateway是Spring Cloud的⼀个全新项目,目标是取代Netflix Zuul,它基于Spring5.0SpringBoot2.0WebFlux(基于高性能的Reactor模式响应式通信框架Netty,异步⾮阻塞模型…

基于python+vue超市管理系统flask-django-php-nodejs

课题主要分为二大模块:即管理员模块和员工模块,主要功能包括:个人信息修改、员工信息、商品信息、商品进货、商品出库、商品销量等; 目录 摘 要 I Abstrac II 目录 III 1绪论 1 1.1 研究背景 3 1.1.1国内研究现状 3 1.1.2国外研究…

是德科技keysight DSOX3024T示波器

181/2461/8938产品概述: DSOX3024T 示波器 要特性与技术指标 使用电容触摸屏进行简洁的触控操作: •提高调试效率 •触控设计可以简化文档记录 •使用起来就像您喜欢的智能手机或平板电脑一样简单 使用 MegaZoom IV 技术揭示偶发异常: •超快…

图像处理ASIC设计方法 笔记12 图像旋转ASIC中心控制器状态机

P109 1 流水线图像旋转ASIC整体架构 中心控制器负责各个模块的状态控制和数据调度,接收到外部启动信号后,进人芯片初始化阶段,片上FIFO接收外部输入的图像旋转参数、接收完毕后,再利用接收到的旋转角度到查找表中找到对应的正弦和正切值。 中心控制器将接收到的行列信息…

鸿蒙Harmony应用开发—ArkTS-LazyForEach:数据懒加载

LazyForEach从提供的数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。当在滚动容器中使用了LazyForEach,框架会根据滚动容器可视区域按需创建组件,当组件滑出可视区域外时,框架会进行组件销毁回收以降低内存占用。 接口…

Pink老师Echarts教学笔记

可视化面板介绍 ​ 应对现在数据可视化的趋势,越来越多企业需要在很多场景(营销数据,生产数据,用户数据)下使用,可视化图表来展示体现数据,让数据更加直观,数据特点更加突出。 01-使用技术 完成该项目需…

是德科技keysight 53230A频率计数器

181/2461/8938产品概述: Keysight(原Agilent) 53230A 通用频率计数器/计时器可满足您所有的频率和时间间隔测量需求。除了典型的频率和时间间隔测量,它还可执行连续/无间隙测量,以进行基本调制域分析。 53230A 配有可选的猝发测量软件。它可…

腾讯云GPU服务器介绍_GPU实例规格价格_AI_深度学习

腾讯云GPU服务器是提供GPU算力的弹性计算服务,腾讯云GPU服务器具有超强的并行计算能力,可用于深度学习训练、科学计算、图形图像处理、视频编解码等场景,腾讯云百科txybk.com整理腾讯云GPU服务器租用价格表、GPU实例优势、GPU解决方案、GPU软…

Linux进程地址空间详解

文章目录 前言一、程序地址空间二、感受虚拟地址的存在三、进程地址空间四、程序从磁盘加载到内存的过程4.1 物理地址和虚拟地址的区别 五、写时拷贝5.1 解释fork()函数有两个返回值 前言 我们在学习C/C的时候用到的地址是什么地址呢?虚拟地址?物理地址&…

全球首位AI程序员诞生,对程序员的影响分析

全球首位AI程序员诞生,对程序员的影响分析 《全球首位AI程序员诞生,对程序员的影响分析》方向一:AI程序员的优势分析方向二:AI程序员的局限性方向三:对程序员职业的影响方向四:未来展望 博主 默语带您 Go t…

Swagger常用注解

Tag 标注位置controller类 表示Controller类作用 Schema modeal层javaBean 描述模型及属性 Operation 描述方法作用

Docker入门到实践之环境配置

Docker入门到实践之环境配置 docker 环境安装 Ubuntu/Debian: sudo apt update sudo apt install docker.ioCentOS/RHEL: sudo yum install dockerArch Linux: sudo pacman -S docker如果未安装成功,或者env的path未设置成功,运行时会报错 Bash: Do…

Linux详细介绍

Linux操作系统介绍 Linux 是一种开源的类 Unix 操作系统,最初由 Linus Torvalds 在 1991 年创建。与其他操作系统不同,Linux 是一个基于内核的操作系统,其核心是 Linux 内核。Linux 内核是由程序员社区不断开发和改进的,它提供了…

Docker - 哲学 默认网络和 自定义网络 与 linux 网络类型 和 overlay2

默认网络:不指定 --nerwork 不指定 网络 run 一个容器时,会直接使用默认的网络桥接器 (docker0) 自定义网络:指定 --nerwork 让这两台容器互相通信 的前提 - 共享同一个网络 关于 ip addr 显示 ens160 储存驱动 ov…

基于Springboot的药品管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的药品管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

深度学习 线性神经网络(线性回归 从零开始实现)

介绍: 在线性神经网络中,线性回归是一种常见的任务,用于预测一个连续的数值输出。其目标是根据输入特征来拟合一个线性函数,使得预测值与真实值之间的误差最小化。 线性回归的数学表达式为: y w1x1 w2x2 ... wnxn …

stm32使用定时器实现PWM与呼吸灯

PWM介绍 STM32F103C8T6 PWM 资源: 高级定时器( TIM1 ): 7 路 通用定时器( TIM2~TIM4 ):各 4 路 例如定时器2 PWM 输出模式: PWM 模式 1 :在 向上计数 时&#xff0…

网络安全顶会——NDSS '24 论文清单、摘要(上)

1、50 Shades of Support: A Device-Centric Analysis of Android Security Updates Android是迄今为止最受欢迎的操作系统,拥有超过30亿活跃移动设备。与任何软件一样,在Android设备上发现漏洞并及时应用补丁都至关重要。Android开源项目已经开始努力通…

<REAL-TIME TRAFFIC OBJECT DETCTION FOR AUTONOMOUS DRIVING>论文阅读

Abstract 随着计算机视觉的最新进展,自动驾驶迟早成为现代社会的一部分,然而,仍有大量的问题需要解决。尽管现代计算机视觉技术展现了优越的性能,他们倾向于将精度优先于效率,这是实时应用的一个重要方面。大型目标检测…