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类属性与实例属性用法分析
May 09 Python
深入理解python函数递归和生成器
Jun 06 Python
Python整型运算之布尔型、标准整型、长整型操作示例
Jul 21 Python
Django使用httpresponse返回用户头像实例代码
Jan 26 Python
详解python3中的真值测试
Aug 13 Python
python中pika模块问题的深入探究
Oct 13 Python
在Python运行时动态查看进程内部信息的方法
Feb 22 Python
将matplotlib绘图嵌入pyqt的方法示例
Jan 08 Python
Keras使用tensorboard显示训练过程的实例
Feb 15 Python
python实现网络五子棋
Apr 11 Python
理解python中装饰器的作用
Jul 21 Python
Python list列表删除元素的4种方法
Nov 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面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
PHP中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
PHP生成RSS文件类实例
2014/12/05 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
2014/12/17 PHP
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
2014/06/23 Javascript
js获得当前系统日期时间的方法
2015/05/06 Javascript
JavaScript计划任务后台运行的方法
2015/12/18 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
Node.js安装配置图文教程
2017/05/10 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
vue实现登陆登出的实现示例
2017/09/15 Javascript
面包屑导航详解
2017/12/07 Javascript
Vue 父子组件的数据传递、修改和更新方法
2018/03/01 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
解决vue select当前value没有更新到vue对象属性的问题
2018/08/30 Javascript
Echarts之悬浮框中的数据排序问题
2018/11/08 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
Python基于smtplib模块发送邮件代码实例
2020/05/29 Python
python如何绘制疫情图
2020/09/16 Python
理货员的岗位职责
2013/11/23 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
先进工作者推荐材料
2014/12/23 职场文书
解除处分决定书
2015/06/25 职场文书
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers
Pandas实现批量拆分与合并Excel的示例代码
2022/05/30 Python
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android