Python matplotlib绘图如何显示中文的问题【有报错没有解决】
一文详解matplotlib的配置文件以及配置方式
主要介绍路径问题和配置文件相关介绍
linux安装字体库(simSun为例)可以在终端中显示中文
Matlab绘图中下标、斜体及希腊字母的使用方法
python画图可能会报警告findfont: Font family [‘sans-serif’] not found. Falling back to Bitstream Vera Sans,这时需要在matplotlib库下更新字体信息。
我们可以把win10下的字体复制到matplotlib的文字字体路径/home/warmtree/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf
里面:
扩展一些字体的英文,用时查询
字体 | 英文 |
---|---|
宋体 | SimSun |
黑体 | SimHei |
微软雅黑 | Microsoft YaHei |
微软正黑体 | Microsoft JhengHei |
新宋体 | NSimSun |
新细明体 | PMingLiU |
细明体 | MingLiU |
标楷体 | DFKai-SB |
仿宋 | FangSong |
楷体 | KaiTi |
隶书 | LiSu |
幼圆 | YouYuan |
华文细黑 | STXihei |
华文楷体 | STKaiti |
华文宋体 | STSong |
华文中宋 | STZhongsong |
华文仿宋 | STFangsong |
方正舒体 | FZShuTi |
方正姚体 | FZYaoti |
华文彩云 | STCaiyun |
华文琥珀 | STHupo |
华文隶书 | STLiti |
华文行楷 | STXingkai |
华文新魏 | STXinwei |
Python实现matplotlib显示中文的方法详解
字体配置文件在如下路径:
遇到报错
/home/warmtree/anaconda3/lib/python3.7/site-packages/matplotlib/mathtext.py:843: MathTextWarning: Font 'default' does not have a glyph for '\u4f4d' [U+4f4d], substituting with a dummy symbol.MathTextWarning)
/home/warmtree/anaconda3/lib/python3.7/site-packages/matplotlib/mathtext.py:843: MathTextWarning: Font 'default' does not have a glyph for '\u79fb' [U+79fb], substituting with a dummy symbol.MathTextWarning)
/home/warmtree/anaconda3/lib/python3.7/site-packages/matplotlib/mathtext.py:843: MathTextWarning: Font 'default' does not have a glyph for '\u8377' [U+8377], substituting with a dummy symbol.MathTextWarning)
/home/warmtree/anaconda3/lib/python3.7/site-packages/matplotlib/mathtext.py:843: MathTextWarning: Font 'default' does not have a glyph for '\u8f7d' [U+8f7d], substituting with a dummy symbol.MathTextWarning)
通过查找,我们发现其实错误的是中文的显示。Unicode编码转换
示例代码
#-*- coding: utf-8 -*-
import matplotlib.pyplot as plt
# 下述是为保证中文宋体,英文stix(近似Times New Roman),更具体说明见https://zhuanlan.zhihu.com/p/118601703
# 实际上做的是$$内应用LaTex语法,采用字体为mathtext.fontset=stix,其外默认的字体为宋体SimSun
import matplotlib as mplfrom matplotlib.font_manager import FontProperties
#font_chinese = FontProperties(fname=r"/media/warmtree/Windows/Windows/Fonts/simsun.ttc", size=24)'''
print(matplotlib.get_backend()) #返回matplotlib的后端
print(matplotlib.get_cachedir()) #缓存目录
print(matplotlib.get_configdir()) #配置目录
print(matplotlib.get_data_path()) #数据路径
print(matplotlib.get_home()) #用户目录
'''
mpl.rcParams['font.sans-serif'] = ['SimSun']#显示中文
mpl.rcParams['font.serif'] = ['SimSun']
plt.style.use('classic')
plt.rcParams['legend.framealpha'] = 0 # 图例框完全透明
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
config1 = { "font.family": 'sans-serif', "font.size": 24,
}
plt.rcParams.update(config1)
config2={'text.usetex': False,'mathtext.fontset': 'stix',
}
plt.rcParams.update(config2)
ax = plt.figure().add_subplot(111)
ax.set_ylabel(u'\u8377\u8f7d'+r'$P\rm{/kN}$')
ax.set_xlabel(u'\u4f4d\u79fb'+r'${\it l\Delta}\rm{/mm}$')
plt.show()
Python matplotlib绘图如何显示中文的问题【有报错没有解决】相关推荐
- Python+matplotlib绘图时显示中文的设置方法
封面图片:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社 图书详情: =================== 在使用Python+mat ...
- python画图显示不了中文_Python使用matplotlib绘图无法显示中文问题的解决方法
本文实例讲述了Python使用matplotlib绘图无法显示中文问题的解决方法.分享给大家供大家参考,具体如下: 在python中,默认情况下是无法显示中文的,如下代码: import matplo ...
- Python利用Matplotlib绘图无法显示中文字体的解决方案
这里写目录标题 问题描述 报错信息 解决方法 其他解决方案 使用模板(内置样式)后无法显示中文的解决方案 问题描述 在Python利用Matplotlib绘图的时候,无法显示坐标轴上面的中文和标题里面 ...
- source insight删除保存路径为中文的project工程项目报错的解决办法
http://blog.csdn.net/yixilee/archive/2010/09/01/5855663.aspx source insight删除已加载的project工程项目报错的解决办法 ...
- Python 中,matplotlib绘图无法显示中文的问题
在python中,默认情况下是无法显示中文的,如下代码: import matplotlib.pyplot as plt# 定义文本框和箭头格式 decisionNode = dict(boxstyl ...
- python matplotlib 画图 不显示中文 中文乱码 设置中文字体
在使用python matplotlib 画图时,由于matplotlib 默认是使用DejaVu Sans这种字体,不支持中文,所以我们在使用matplotlib画图包含中文内容要显示时就会变成方框 ...
- 环境搭建:使用python matplotlib画图不显示中文问题解决
1.背景 python matplotlib.plt 使用 plt.title 写标题时,标题显示为方框,无法正常显示中文,而且基本上在一台新的服务器上配置python开发环境都会遇到这种问题,因此写 ...
- Python携库一并打包(打包pyecharts程序运行报错的解决方法)
python正常打包,我们只需要在Terminal里输入 pyinstaller -F +项目 即可,如下图 但是呢,有一天我的新项目里 添加了pyecharts这个库,但是打包后,发现用不了.总是报 ...
- python Matplotlib绘图实现:中文宋体,英文新罗马(科研人必备);解决Font family [‘sans-serif‘] not found.
1.合并字体 将电脑自带的宋体和Times New Roman字体合并为新字体,我命名为SongNTR.ttf https://github.com/nowar-fonts/Warcraft-Font ...
最新文章
- python实现洗牌算法_洗牌算法及 random 中 shuffle 方法和 sample 方法浅析
- OpenGL PN三角形的分化
- MPAndroidChart——饼图
- Code First02---CodeFirst配置实体与数据库映射的两种方式
- mysql中使用HAVING 筛选分组后的数据
- 我又踩坑了!如何为HttpClient请求设置Content-Type标头?
- 营销获客场景下的个人类业务要件分析
- 猜拳游戏php代码,最常见的猜拳小游戏Android代码实现
- Anylogic问题-----模型运行中外部输入控制模型
- 天秀!花费 200W 设计的新版 “小米”图标,看看用Python怎么绘制?
- iozone文件系统性能评测工具
- 学计算机优盘多少内存够用,u盘建议买多大内存的
- 80004005错误代码_关于访问共享时出现80004005错误
- IP地址冲突的原因及其解决方法
- @00后,有个编程问题请教下
- Redis设置过期时间为当月月底-----自动计算
- 论文复现_1:Chinese NER Using Lattice LSTM
- Windows上快速创建一个1G以上的大文件
- CCS调试问题 Break at address “0x3ff9ce“ with no debug information available, or outside of program code.
- 揭秘Angular 2
热门文章
- 本地的registry图形化界面harbor安装与使用--02
- Java 利用Calender类制作日历,并且标注日期
- [浅析]UE4物理系统
- 《歪笑小说》—— 读后总结
- Oracle表分区.
- 希尔伯特黄变换(Hilbert-Huang)原理、HHT求时频谱、边际谱,及MATLAB(2018rb)实现
- 青云服务器控制台系统,新版管理控制台正式上线 青云QingCloud助用户资源管理更高效...
- align-content 和align-items的区别
- JavaScript设计模式总汇
- memcpy、memmove