Python-matplotlib-中文字体显示和设置
0.摘要
在matplotlib绘图过程中,中文的标题或者轴标中如果含有中文,会出现不能正常显示的问题。
本文主要介绍在Windows系统下,matplotlib库中的中文字体显示方法和相关配置。
1.全局设置
#!/usr/bin/python
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib
import matplotlib.pyplot as pltx = np.linspace(-10,10,200)
y = x
plt.plot(x,y)# 设置matplotlib正常显示中文和负号
matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文
matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号plt.xlabel("横轴/单位")
plt.ylabel("纵轴/单位")
plt.title("标题")
plt.show()
该方法具有全局作用范围,会将所有字体设置为黑体。因此,如果不加入下面这一句,会导致负号无法显示:
matplotlib.rcParams['axes.unicode_minus']=False
2.局部设置
如果希望对图表中不同部分采用个性化的设置方案,可以使用FontProperties设置方法。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontPropertiesx = np.linspace(-10,10,200)
y = x
plt.plot(x,y)font1 = FontProperties(fname=r"c:\windows\fonts\simsun.ttc")
font2 = FontProperties(fname=r"c:\windows\fonts\STHUPO.TTF")
font3 = FontProperties(fname=r"c:\windows\fonts\STCAIYUN.TTF")plt.xlabel("横轴/单位",fontproperties=font1)
plt.ylabel("纵轴/单位",fontproperties=font2)
plt.title("标题",fontproperties=font3)
plt.show()
这里的字体来自于系统,因此字体形式更加丰富,但是需要找到字体存放的路径,Windows下的默认路径为:C:\Windows\Fonts。由于Windows的文件系统并不区分大小写,因此这里对大小写问题不需要过多留意。
这里介绍一下Windows系统字体名称的查看方法:
step1:进入目录C:\Windows\Fonts
step2:点击相应字体-->属性
3.通过fontproperties参数设定
上一种方法虽然能够实现个性化的配置,并且不会影响全局字体环境,但配置步骤相对繁琐,这里介绍一种更为简单的方法:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontPropertiesx = np.linspace(-10,10,200)
y = x
plt.plot(x,y)plt.xlabel("横轴/单位",fontproperties="STLiti")
plt.ylabel("纵轴/单位",fontproperties="STXingkai")
plt.title("标题",fontproperties="STXinwei")
plt.show()matplotlib.matplotlib_fname()
其中,fontproperties后跟字体名称,字体中英文名称对应关系见下表:
字体 | 字体名 |
黑体 | SimHei |
楷体 | KaiTi |
隶书 | LiSu |
幼圆 | YouYuan |
华文细黑 | STXihei |
华文楷体 | STKaiti |
华文宋体 | STSong |
华文中宋 | STZhongsong |
华文仿宋 | STFangsong |
方正舒体 | FZShuTi |
方正姚体 | FZYaoti |
华文彩云 | STCaiyun |
华文琥珀 | STHupo |
华文隶书 | STLiti |
华文行楷 | STXingkai |
华文新魏 | STXinwei |
Python-matplotlib-中文字体显示和设置相关推荐
- python中文字体下载_解决Linux系统下python matplotlib中文字体显示问题
最近想学习一些python数据分析的内容,就弄了个爬虫爬取了一些数据,并打算用Anaconda一套的工具(pandas, numpy, scipy, matplotlib, jupyter)等进行一些 ...
- python画图包seaborn和matplotlib中文字体显示(针对windows系统,,使用ipython notebook)
一.seaborn的中文字体显示(针对windows系统,,使用ipython notebook) #################### 更新:2017年6月16日 这次的seaborn版本是0. ...
- 永久解决python matplotlib 中文字体的显示乱码-Windows系统
在python中使用matplotlib绘图时,新手通常会遇到中文字体无法显示或显示乱码的问题,这是因为matplotlib中默认没有中文字体.windows系统下的永久解决方法如下: 1.确定当前p ...
- linux下python matplotlib 中文字体Font family [‘sans-serif‘] not found. Falling back to DejaVu Sans
问题 在linux新的python环境,安装了matplotlib,但是使用中文字体时找不到. 问题代码: import matplotlib.pyplot as plt plt.rcParams[' ...
- 设置python的中文字体显示
plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False
- Mac系统中字体位置及matplotlib中文字体显示问题解决
Mac系统里面字体存储位置有两个: xinaodeiMac:/ xinao$ cd /Library/Fonts xinaodeiMac:Fonts xinao$ pwd /Library/Fonts ...
- Python Matplotlib 中文显示参数设置
最近在学习python著名的绘图包matplotlib时发现,有时候图例等设置无法正常显示中文,于是就想把这个问题解决了. PS:本文仅针对Windows,其他平台仅供参考. 原因 大致就是matpl ...
- python系统字体_Python-matplotlib-中文字体显示和设置
0.摘要 在matplotlib绘图过程中,中文的标题或者轴标中如果含有中文,会出现不能正常显示的问题. 本文主要介绍在Windows系统下,matplotlib库中的中文字体显示方法和相关配置. 1 ...
- python微软雅黑字体_Matplotlib中文字体显示
在Mac上安装Matplotlib 不使用Anaconda,直接使用pip安装即可: pip3 install matplotlib 向Matplotlib添加中文字体Microsoft YaHei( ...
- Mac下matplotlib中文字体无法显示解决办法
问题 使用matplotlib画图时会出现汉字无法显示的情况如下图所示 Mac系统版本 解决方法 下载所需字体如SimHei Font,此时需要注意,字体格式应为ttf格式. 将下载的字体放到matp ...
最新文章
- 水稻微生物组时间序列分析4-随机森林回归
- 普加甘特图集成到第三方JS框架(MiniUI、jQuery、Ext等)
- java 线程状态_JAVA线程漫谈:线程状态与状态转换解析
- find_in_set()和in()比较
- nginx+tomcat+resin+jdk一键自动化安装脚本(4--resin安装脚本)
- ubuntu16.04+xfce4截图、终端调出、锁屏的快捷键设置、去掉Alt+鼠标移动屏幕的功能、安装thunar、小键盘问题、设置终端背景
- php控制文本换行,css如何控制文字换行方式?(代码示例)
- Tidb集群加mysql_TiDB - 快速入门,集群搭建
- 算法练习一:求最小公倍数
- 安装Nginx必要组件时解决 yum -y install pcre pcre-devel安装出错
- java数组的声明学号姓名线性结构_20172302 《Java软件结构与数据结构》实验一:线性结构实验报告...
- mysql weblogic_weblogic连mysql的问题
- AutoCAD DWG,DXF文件导出高清图片、PDF
- 开源GIS简介.学习
- 实验matlab滤波器心得,数字信号处理,实验,Matlab实验FIR滤波器实现
- sentinel实现限流、降级、熔断配置和测试使用
- python爬取高校课程信息进行选课实战
- 大华SDK+JAVA+4g网络摄像头进行二次开发
- mybatis的几种锁
- TensorFlow 、Caffe等9大人工智能框架对比介绍