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中的json与pickle
Jul 19 Python
python对excel文档去重及求和的实例
Apr 18 Python
python3判断url链接是否为404的方法
Aug 10 Python
对python 操作solr索引数据的实例详解
Dec 07 Python
python图像处理入门(一)
Apr 04 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
Python字典添加,删除,查询等相关操作方法详解
Feb 07 Python
python 链接sqlserver 写接口实例
Mar 11 Python
Python是什么 Python的用处
May 26 Python
基于Python实现2种反转链表方法代码实例
Jul 06 Python
python调用百度API实现人脸识别
Nov 17 Python
Django url 路由匹配过程详解
Jan 22 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
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
php5新改动之短标记启用方法
2008/09/11 PHP
php2html php生成静态页函数
2008/12/08 PHP
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
Vue 配合eiement动态路由,权限验证的方法
2018/09/26 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
python中多层嵌套列表的拆分方法
2018/07/02 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
Python按钮的响应事件详解
2019/03/04 Python
Python中print和return的作用及区别解析
2019/05/05 Python
python常见字符串处理函数与用法汇总
2019/10/30 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
Python如何将将模块分割成多个文件
2020/08/04 Python
购买大码女装:Lane Bryant
2016/09/07 全球购物
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
终止劳动合同协议书
2014/04/14 职场文书
品质保证书格式
2015/02/28 职场文书
羊脂球读书笔记
2015/06/30 职场文书
旅游投诉信范文
2015/07/02 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers