matplotlib设置中英文多种字体混合坐标轴名称
在利用matplotlib绘图时,常常需要添加图例与坐标轴名称,而在论文中,对中英文有严格的不同的字体要求,但默认的方法中(如下所示),无法分别为中文、英文指定不同字体(如下图),因此需要借助其他方法。
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
# 在python中,字体单位貌似是px,与pt间的换算关系为1pt=4/3px
simsun = FontProperities(fname=r'C:\Windows\Fonts\simsun.ttc', size=10)
plt.xlabel(u'Di距离', fontproperties=simsun)
经过摸索后发现text函数能够在指定位置按照指定字体与大小显示文字,因此可以通过调整文字位置来实现xlabel的功能并且能够按照指定字体分别显示中英文(如下图)。代码如下:
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
from pylab import mpl, text
from matplotlib.font_manager import FontProperties
import numpy as np # windows下matplotlib显示中文一般有问题,需要专门进行设置才能正常显示
# 下面是两种设置的方式,使用时的参数也略有区别,在此不具体介绍
# 但需提前设置好,使得能够显示中文,否则中文字符位置显示为方框
simsun = FontProperties(fname=r'C:\Windows\Fonts\simsun.ttc', size=10) # 宋体
roman = FontProperties(fname=r'C:\Windows\Fonts\times.ttf', size=10) # Times new roman
mpl.rcParams['font.sans-serif'] = ['SimSun']
fontcn = {'family': 'SimSun','size': 10} # 1pt = 4/3px
fonten = {'family':'Times New Roman','size': 10}plt.figure(1)
ax1 = plt.subplot(121) # 左图
ax2 = plt.subplot(122) # 右图
plt.sca(ax1)plt.xlim(0,150)
plt.ylim(0,0.08)
plt.xticks(range(0,160,10),rotation=0)
# 设置斜体-Times New Roman字体
text(60, -0.01, u'Di', style='italic', fontdict=fonten)
text(70, -0.01, u'距离', fontdict=fontcn)
text(85, -0.01, u'(km)', fontdict=fonten)
plt.ylabel(u"核密度", fontproperties=simsun)
plt.title(u"a.核密度")plt.sca(ax2)
plt.xlim(0,150)
plt.ylim(0,1)
plt.xticks(range(0,160,10),rotation=0)
plt.yticks(np.linspace(0,1,11))text(60, -0.13, u'Di', style='italic', fontdict=fonten)
text(70, -0.13, u'距离', fontdict=fontcn)
text(85, -0.13, u'(km)', fontdict=fonten)
plt.ylabel(u"累积概率", fontproperties=simsun)
plt.title(u"b.累积概率")
plt.show()
上述代码可直接运行,字体设置无误即可得到上图中的结果,但Di距离(km)
可能会重叠或者空隙较大,这是正常情况,需要调整文字位置。text
函数的前两个参数为其位置参数,都与其x轴、y轴坐标刻度有关,以<text(70, -0.01, u’距离’, fontdict=fontcn)
为例,70说明其水平方向位置在坐标轴70处,-0.01说明其垂直方向位置在-0.01刻度处,按照这个规则即可以多种字体显示多段文字。
以上,欢迎留言交流~
matplotlib设置中英文多种字体混合坐标轴名称相关推荐
- MATLAB画图中英文不同字体混合显示标题、坐标轴标签(完美解决方案)
MATLAB是吾等理工狗常用的求生工具.在画图时对中英文标题均支持较好,但学术出版物常常对字体有所要求.对于英文出版物一切好说,设置成相应字体即可.而对于中文出版物.中文毕业论文.报告,则常常需要混合 ...
- Python学习(1)---matplotlib中常用中文字体的对应名称
Python绘图标注图时需要选择自己想要的中文字体,现有的中文字体对照表如下: 中文字体名称 ttf 代码设置 宋体 simsun SimSun 华文琥珀 STHUPO STHupo 楷体 simka ...
- 用python画论文图—中英文坐标轴名称
用python给论文画图-中英文坐标轴名称 在编辑论文时,不同的期刊对画图的要求是不一样的,以目前期刊要求为例,用python画图,满足要求. 字体 ,要求的字体格式有两种:Euclid和宋体: (1 ...
- python画图,使用matplotlib和seaborn来设置图形的字体大小,坐标轴的线宽,风格,取值范围
1. matplotlib 样式的设计 1.1 设置坐标轴的线框 如果我们要设置坐标轴的线宽,我们可以向下面这样做: import matplotlib.pyplot as plt###设置坐标轴的粗 ...
- R语言读取(加载)txt格式数据为dataframe、可视化绘制温度直方图、自定义设置坐标轴名称字体大小
R语言读取(加载)txt格式数据为dataframe.可视化绘制温度直方图.自定义设置坐标轴名称字体大小 目录 R语言读取(加载)txt格式数据为dataframe.可视化绘制温度直方图.自定义设置坐 ...
- Matplotlib 设置支持中文的默认字体
Matplotlib 设置支持中文的默认字体 问题描述 python 3.7 使用 matplotlib 时汉字显示为方框,如下: 问题原因 matplotlib 使用的默认字体不支持中文,需要更换绘 ...
- Matplotlib绘图-颜色,字体,刻度,label,tick_label,粗细,图例设置
From: subce Tips 整理一下关于绘图的基本设置,主要包括: 自定义legend 二维图tick的长度和粗细 孪生x轴.y轴 设置二维图边框粗细 给三维图添加边框 设置三维图背景颜色为白色 ...
- Matlab:设置figure中英文不同字体
Matlab:设置figure中英文不同字体 Matlab中,有时figure的title.legend或坐标轴需要既有中文,又有英文,且中文要求宋体.英文为Times New Roman,通常t ...
- Python使用matplotlib函数subplot可视化多个不同颜色的折线图、为多个子图添加总标题(main title)、自定义设置主标题字体类型、字体大小、字体颜色等
Python使用matplotlib函数subplot可视化多个不同颜色的折线图.为多个子图添加总标题(main title).自定义设置主标题字体类型.字体大小.字体颜色等 目录
最新文章
- RTOS诊断和错误检查
- 关于Linux发行版本RedHat9中文输入法使用问题的说明
- 皮一皮:我是谁,我在哪里,我的爸爸是哪个?
- 《高可用MySQL》2 – 单机版MySQL主从配置
- 【c++】标准模板库STL入门简介与常见用法
- Linux 命令之 sudoedit -- 以另外一个用户身份编辑文件
- 给公司的电脑配置theano
- Kafka——使用spring进行集成
- Q104:怎么用ray tracing画基于磨边楔形的“花环(Rosette)”
- Android - Broadcast机制
- 单库单服解决方案terraform部署实践
- UbuntuSkills
- K3wise数据字典及常用表及视图
- PLSQL 安装教程
- 大学生竞赛管理系统项目
- C语言《填数游戏》全流程
- Processing创意编程(入门篇)
- 围观神仙打架,反革命工程师《iOS应用架构谈 组件化方案》和蘑菇街Limboy的《蘑菇街 App 的组件化之路》的阅读指导
- 移动开发的软件开发生命周期介绍(二)
- Java毕业设计之ssm流浪猫狗|流浪狗宠物救助网站