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的几种标准输出重定向方式
Aug 15 Python
Python测试人员需要掌握的知识
Feb 08 Python
Python简单计算给定某一年的某一天是星期几示例
Jun 27 Python
对Pandas MultiIndex(多重索引)详解
Nov 16 Python
用python标准库difflib比较两份文件的异同详解
Nov 16 Python
详解python中init方法和随机数方法
Mar 13 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
Aug 13 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
Sep 15 Python
判断Threading.start新线程是否执行完毕的实例
May 02 Python
Django ORM实现按天获取数据去重求和例子
May 18 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
Jun 11 Python
python中upper是做什么用的
Jul 20 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新建文件自动编号的思路与实现
2011/06/27 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
JavaScript入门学习书籍推荐
2008/06/12 Javascript
30分钟就入门的正则表达式基础教程
2013/02/25 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
JS实现的仿QQ空间图片弹出效果代码
2016/02/23 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
Vue实战之vue登录验证的实现代码
2017/10/31 Javascript
深入理解 webpack 文件打包机制(小结)
2018/01/08 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
vue 中的 render 函数作用详解
2020/02/28 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
JQuery绑定事件四种实现方法解析
2020/12/02 jQuery
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
[01:31]DOTA2上海特级锦标赛 SECRET战队完整宣传片
2016/03/16 DOTA
python的迭代器与生成器实例详解
2014/07/16 Python
深入理解NumPy简明教程---数组1
2016/12/17 Python
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
Python爬虫之xlml解析库(全面了解)
2017/08/08 Python
Django开发中的日志输出的方法
2018/07/02 Python
解决使用export_graphviz可视化树报错的问题
2019/08/09 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
Wiggle新西兰:自行车、跑步、游泳
2020/05/06 全球购物
临床医学专业毕业生的自我评价
2013/10/17 职场文书
优秀党员主要事迹
2014/01/19 职场文书
保密工作责任书
2014/04/16 职场文书
毕业班工作总结
2015/08/10 职场文书