欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python-Matplotlib 显示中文、中文乱码解决办法

程序员文章站 2022-03-20 13:29:26
...

Python-Matplotlib 显示中文、中文乱码解决办法

使用matplotlib库时,发现中文乱码,显示出来是【口口】,在这里总结三个办法供大家参考。

  1. 临时修改
  • 通过修改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()
  1. 长期修改
  • 通过修改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()
Python-Matplotlib 显示中文、中文乱码解决办法

(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

相关标签: Python