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 相关文章推荐
12步入门Python中的decorator装饰器使用方法
Jun 20 Python
python中的格式化输出用法总结
Jul 28 Python
python判断输入日期为第几天的实例
Nov 13 Python
Python数据抓取爬虫代理防封IP方法
Dec 23 Python
Python实现的KMeans聚类算法实例分析
Dec 29 Python
python统计中文字符数量的两种方法
Jan 31 Python
Python中使用遍历在列表中添加字典遇到的坑
Feb 27 Python
Python面向对象之类和实例用法分析
Jun 08 Python
python3实现斐波那契数列(4种方法)
Jul 15 Python
Pygame框架实现飞机大战
Aug 07 Python
基于tensorflow __init__、build 和call的使用小结
Feb 26 Python
Python中tqdm的使用和例子
Sep 23 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中Date()时间日期函数的使用方法小结
2011/04/20 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
2013/01/27 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
Mootools 1.2教程 正则表达式
2009/09/15 Javascript
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
JS拖动鼠标画出方框实现鼠标选区的方法
2015/08/05 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
2018/08/25 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
Python GAE、Django导出Excel的方法
2008/11/24 Python
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
python实现事件驱动
2018/11/21 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
python3中rank函数的用法
2019/11/27 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
python字典按照value排序方法
2020/12/28 Python
HTML5 解析规则分析
2009/08/14 HTML / CSS
局域网标准
2016/09/10 面试题
师范生教师实习自我鉴定
2013/09/27 职场文书
成人大专自我鉴定范文
2013/10/19 职场文书
酒店中秋节活动方案
2014/01/31 职场文书
优秀学生干部推荐材料
2014/02/03 职场文书
经贸韩语专业大学生职业规划
2014/02/14 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
小学安全工作总结2015
2015/05/18 职场文书