Python matplotlib修改默认字体的操作


Posted in Python onMarch 05, 2020

matplotlib库作为Python常用的数据可视化库,默认字体居然不支持中文字体,必须得吐槽一下~

闲言少叙,开始正文

方法1:在plot中指定prop参数

使用matplotlib.font_manager下的FontProperties加载中文字体

调用函数时通过prop属性指定中文字体

import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
x_data = ['2011', '2012', '2013', '2014', '2015', '2016', '2017']
# 定义2个列表分别作为两条折线的Y轴数据
y_data = [58000, 60200, 63000, 71000, 84000, 90500, 107000]
y_data2 = [52000, 54200, 51500,58300, 56800, 59500, 62700]
# 指定折线的颜色、宽度、线形
ln1, = plt.plot(x_data, y_data, color='red', linewidth=2.0,
        linestyle='--', label='A书年销量')
ln2, = plt.plot(x_data, y_data2, color='blue', linewidth=2.0,
        linestyle='-.', label='B书年销量')
# 使用my_font存出一个加载的中文字体
my_font = fm.FontProperties(fname='C:\Windows\Fonts\YaHei.Consolas.1.12.ttf')
# 赊着prop参数未该字体
plt.legend(loc='best', prop=my_font)
plt.show()
var foo = 'bar';

方法2:修改matplotlib默认字体

1、使用交互行获取matplotlib配置文件的保存位置

>>>import matplotlib
>>>matplotlib.matplotlib_fname()
'G:\\Anaconda3\\envs\\PyProjects\\lib\\site-packages\\matplotlib\\mpl-data\\matplotlibrc'

2、打开文件,找到如下行

# font.family : sans-serif

3、修改字体为系统中能够加载中文的字体(这里我用的是SimHei,即黑体)

font.family : SimHei

当然用Yahei Consolas Hybrid也是可以的(需要自己安装),但是Microsoft Yahei和msyh都试过了,会报错,具体原因有待考证~

补充知识:修改 matplotlib 的默认配置添加雅黑字体

根据anaconda安装路径找到配置文件

E:\software\anaconda3\Lib\site-packages\matplotlib\mpl-data\matplotlibrc

打开, 找到 font.sans-serif 删掉注释,添加即可

Python matplotlib修改默认字体的操作

重新启动 jupyter notebook即可

在新开启的文件中输入,就可以正常显示汉字

import matplotlib as mpl
mpl.rcParams['font.serif'] = ['SimHei']

以上这篇Python matplotlib修改默认字体的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
一篇不错的Python入门教程
Feb 08 Python
11个并不被常用但对开发非常有帮助的Python库
Mar 31 Python
浅析Python3爬虫登录模拟
Feb 07 Python
Python使用pip安装pySerial串口通讯模块
Apr 20 Python
基于python进行桶排序与基数排序的总结
May 29 Python
python之验证码生成(gvcode与captcha)
Jan 02 Python
Django 1.10以上版本 url 配置注意事项详解
Aug 05 Python
python函数修饰符@的使用方法解析
Sep 02 Python
win10环境下配置vscode python开发环境的教程详解
Oct 16 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
Mar 19 Python
python中把元组转换为namedtuple方法
Dec 09 Python
scrapy实践之翻页爬取的实现
Jan 05 Python
Django 返回json数据的实现示例
Mar 05 #Python
python利用opencv实现SIFT特征提取与匹配
Mar 05 #Python
python画图常规设置方式
Mar 05 #Python
解决python -m pip install --upgrade pip 升级不成功问题
Mar 05 #Python
python入门之井字棋小游戏
Mar 05 #Python
解决Python图形界面中设置尺寸的问题
Mar 05 #Python
python实现简单井字棋小游戏
Mar 05 #Python
You might like
使用PHP获取网络文件的实现代码
2010/01/01 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
学习ExtJS fit布局使用说明
2009/10/08 Javascript
javascript Object与Function使用
2010/01/11 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
jQuery中:focus选择器用法实例
2014/12/30 Javascript
javascript判断变量是否有值的方法
2015/04/20 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
2018/02/05 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
Python使用MD5加密字符串示例
2014/08/22 Python
Python中的ConfigParser模块使用详解
2015/05/04 Python
Python如何实现文本转语音
2016/08/08 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
Python延时操作实现方法示例
2018/08/14 Python
python中logging模块的一些简单用法的使用
2019/02/22 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
针对HTML5的Web Worker使用攻略
2015/07/12 HTML / CSS
几道数据库的面试题或笔试题
2014/05/31 面试题
大学生收银员求职信分享
2014/01/02 职场文书
党建示范点实施方案
2014/03/12 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
蜗居观后感
2015/06/11 职场文书
车间班组长竞聘书
2015/09/15 职场文书