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控制台中实现进度条功能
Nov 10 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
Jun 23 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
Python配置mysql的教程(推荐)
Oct 13 Python
Python获取二维矩阵每列最大值的方法
Apr 03 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
Aug 02 Python
python使用__slots__让你的代码更加节省内存
Sep 05 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
Apr 04 Python
Django xadmin开启搜索功能的实现
Nov 15 Python
利用Python脚本批量生成SQL语句
Mar 04 Python
pycharm第三方库安装失败的问题及解决经验分享
May 09 Python
关于Python OS模块常用文件/目录函数详解
Jul 01 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开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
jQuery前台数据获取实现代码
2011/03/16 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
2017/01/10 Javascript
AngularJS+bootstrap实现动态选择商品功能示例
2017/05/17 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
微信小程序学习笔记之文件上传、下载操作图文详解
2019/03/29 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
详解django中使用定时任务的方法
2018/09/27 Python
python用opencv完成图像分割并进行目标物的提取
2020/05/25 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
Android面试题及答案
2015/09/04 面试题
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
如何理解transaction事务的概念
2015/05/27 面试题
学校采购员岗位职责
2014/01/02 职场文书
高中地理教学反思
2014/01/29 职场文书
高二化学教学反思
2014/01/30 职场文书
《雨点》教学反思
2014/02/12 职场文书
求职意向书范文
2014/04/01 职场文书
操行评语大全
2014/04/30 职场文书
电话客服工作职责
2014/07/27 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
Go语言中的UTF-8实现
2021/04/26 Golang