python画图设置字体_【转】matplotlib画图时的中文设置
采用matplotlib作图时默认设置下是无法显示中文的,例如编写如下python脚本,
#-*- coding: utf-8 -*-
from pylab import *
t = arange(-4*pi, 4*pi, 0.01)
y = sin(t)/t
plt.plot(t, y)
plt.title(u'钟形函数')
plt.xlabel(u'时间')
plt.ylabel(u'幅度')
plt.show()
显示出来的结果如图1所示,可见标题、标签都无法正常显示中文:
实际上,matplotlib是支持unicode编码的,出现图1的问题主要是没有找到合适的中文字体,在matplotlib的配置文件中,可以看到字体的默认设置如下:
#font.family: sans-serif
#font.sans-serif: Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
并没有中文字体,所以我们只要手动添加中文字体的名称就可以了,不过并不是添加我们熟悉的“宋体”或“黑体”这类的名称,而是要添加字体管理器识别出的字体名称,matplotlib自身实现的字体管理器在文件font_manager.py中,自动生成的可用字体信息在保存在文件fontList.cache里,可以搜索这个文件查看对应字体的名称,例如simhei.ttf对应的名称为’SimHei’,simkai.ttf对应的名称为’KaiTi_GB2312’等。因此我们只要把这些名称添加到配置文件中去就可以让matplotlib显示中文,修改的方法有两种:
1. 直接修改配置文件matplotlibrc
在配置文件中找到font.sans-serif的设置,然后添加需要的中文字体名称,例如:
font.sans-serif: SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
2. 动态设置(推荐方式)
在python脚本中动态设置matplotlibrc,这样不需要更改配置文件,方便灵活,例如:
mpl.rcParams['font.sans-serif'] = ['SimHei']
修改后的代码如下:
#-*- coding: utf-8 -*-
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
t = arange(-4*pi, 4*pi, 0.01)
y = sin(t)/t
plt.plot(t, y)
plt.title(u'钟形函数')
plt.xlabel(u'时间')
plt.ylabel(u'幅度')
plt.show()
显示出来的结果如图2所示,可见标题、标签都能正常显示中文:
但是细心些可以看出图2显示的结果并不正确,注意对比图1和图2的横坐标的坐标值,会发现图2中负轴的横坐标值不对,负号不见了!很明显,这不是程序的错误,而是由于更改了字体导致显示不出负号,在配置文件中我们可以在axes相关设置里找到如下设置:
#axes.unicode_minus : True
可见默认情况下采用的是unicode的minus,看来我们选择的字体对这点支持不够,所以只要把它设置为False就可以了,最终的代码如下:
#-*- coding: utf-8 -*-
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
t = arange(-4*pi, 4*pi, 0.01)
y = sin(t)/t
plt.plot(t, y)
plt.title(u'钟形函数')
plt.xlabel(u'时间')
plt.ylabel(u'幅度')
plt.show()
最终显示的结果如图3所示,一切都正常了。
python画图设置字体_【转】matplotlib画图时的中文设置相关推荐
- typora高级设置字体_新买的 Mac,这样设置后可以更好用
随着 iPhone 在国内的流行,越来越多的人喜欢上苹果产品,其中就包括拥有 30 多年历史的 Mac 电脑.虽然 macOS 一直以简洁易用著称,但由于大多数人之前已经习惯了 Windows 系统, ...
- 苹果python怎么设置字体_在Mac OS X 10.6中的Python中,无法在Matplotlib中将字体更改为Helvetica...
我正在尝试将matplotlib字体更改为helvetica,我想在PDF图中使用.我尝试以下: import matplotlib matplotlib.use('PDF') import matp ...
- python ggplot画等值线图_传说中的画图神器Plotnine,Python中的ggplot2
R的忠实用户知道,ggplot2可以使您在处理探索性数据分析和数据可视化时更加简单.它使得创建优雅而强大的情节变得如此容易,从而有助于解读数据中的潜在关系. 那么Python用户是否也有类似的画图工具 ...
- Win10下Python实现动态条形图(附解决matplotlib画图中文乱码问题)
1.安装最新的bar-chart-race包0.2版本 从GitHub上下载压缩包,将解压后的文件夹放置在项目的创建的–虚拟环境/lib/python3.7/site-packages目录下. htt ...
- python图像加坐标_Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例...
本文实例讲述了Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息.分享给大家供大家参考,具体如下: 进行图像绘制有时候需要设定坐标轴以及图像标题等信息,示例代码如下: #-*- ...
- Python+matplotlib绘图时显示中文的设置方法
封面图片:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社 图书详情: =================== 在使用Python+mat ...
- python 四象限图_使用matplotlib绘制四象限图
今天简单研究了一下在python中绘制四象限图的问题,结合前人相关研究成果,绘制出的图效果如下: 绘制这种图的要点是:自己构造新的x轴和y轴,不要用散点图默认的横纵坐标系,并且不要显示原来的横纵坐标系 ...
- eclipse设置字体_字符编码_快捷键
eclipse设置字体.字符编码.快捷键 1.设置字体: preferences->general->appearnce->colors and fonts-->basic-- ...
- 画图控件_用CAD画图,还不会用属性块?你不加班谁加班
很多使用AutoCAD的人都知道图块,图块可以重复插入.做成图库,减少重复操作,因此被广泛使用.但是大家却不太了解属性块.简单的说,属性块就是在图块上附加一些文字属性(Attribute),这些文字可 ...
最新文章
- java 异常 理解_java中的异常理解
- powerpoint打字慢
- 怎么计算开学第几周php,如何计算开学第几周, 要求每年通用
- Python程序中的线程操作-锁
- 帮盖尔优化SQL-----子查询优化的经典案例
- 不可忽略的apache 的 Keep Alive
- Python笔记-UiSelector中resourceId定位方式
- POI写Word换行
- Spark Structured Straming:'writeStream' can be called only on streaming Dataset/DataFrame
- Ubuntu 下无法Tab键自动补全功能解决办法
- Java课程设计 商品管理系统
- 装系统比较好用的PE工具推荐
- 碰撞检测经典解决方案
- 模拟信道和数字信道的区别
- android10及以上通话录音
- 微信转发软件后缀_微信发送不了100M的视频?其实只需要改个后缀,长知识了...
- 入华商用四周年,Office 365小程序在路上
- layui弹出层之layer.open弹出iframe窗口·
- 物理系统与艺术结合下的代码创作
- 拉普拉斯Laplace算子和高斯二阶导核(LOG算子)和SIFT算法