Python-Matplotlib 显示中文、中文乱码解决办法
程序员文章站
2022-03-20 13:29:26
...
Python-Matplotlib 显示中文、中文乱码解决办法
使用matplotlib库时,发现中文乱码,显示出来是【口口】,在这里总结三个办法供大家参考。
- 临时修改
- 通过修改fontproperties属性来显示中文。优点:灵活,不污染全局字体设置
import matplotlib.pyplot as plt
plt.plot([1, 2], [1, 2],[5,6], [5, 3])
plt.xlabel("x轴")
plt.ylabel("y轴", fontproperties="SimSun") # 步骤一 (宋体)
plt.title("标题", fontproperties="SimHei") # (黑体)
plt.show()
- 长期修改
- 通过修改rcParams参数来显示中文,这样直接影响全局字体
在最开头写上
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']#替换sans-serif字体为黑体
plt.rcParams['axes.unicode_minus'] = False # 解决坐标轴负数的负号显示问题
例如:
import matplotlib.pyplot as plt
# 在我的 notebook 里,要设置下面两行才能显示中文
plt.rcParams['font.family'] = ['Microsoft YaHei']
# 如果是在 PyCharm 里,只要下面一行,上面的一行可以删除
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 解决坐标轴负数的负号显示问
plt.rcParams['axes.unicode_minus'] = False
plt.plot([0, 1], [1, 2])
plt.title('显示中文', size=16)
# dpi 设置保存文本的分辨率
plt.savefig('./first.jpg', dpi=200)
plt.show()
- 通过修改对应的matplotlib文件参数来显示中文
(1)显示配置文件路径
import matplotlib
matplotlib.matplotlib_fname()
(2)定位到路径,打开这个文件,先找到 #font.family,去掉这行开头的“#” 。
将sans-serif,同样去掉“#”,改为系统中存在的中文字体【SimHei】(黑体或其他)。
(3)添加完字体名字,再找到#axes.unicode_minus,去掉“#”,并把“True”改成“False”,这样就可以正常显示负号。
【附录】
一些中文字体的英文名
微软雅黑: Microsoft YaHei
宋体:SimSun
黑体:SimHei
仿宋: FangSong
楷体: KaiTi
隶书:LiSu
幼圆:YouYuan
华文细黑:STXihei
华文楷体:STKaiti
华文宋体:STSong
华文中宋:STZhongsong
华文仿宋:STFangsong
方正舒体:FZShuTi
方正姚体:FZYaoti
华文彩云:STCaiyun
华文琥珀:STHupo
华文隶书:STLiti
华文行楷:STXingkai
华文新魏:STXinwei
- 文章参考:
matplotlib显示中文