1.使用open(‘**.txt’)打开中文字符时报错!!
解决方法:一,查看下txt中的编码格式是否为utf-8,如果不是,另存为时,点击下方编码方式,选择utf-8即可;二,在open()函数中增加:encoding='utf-8',例如:
with open('alice.txt','r',encoding='utf-8') as al:
text_from_file_with_paht=al.read()
2.使用matplotlib处理数据时,标题及axis中无法显示中文。备注:Matplotlib 默认情况不支持中文。
方法三:永久解决方法(修改windows配置文件)(推荐):
第一步:通过直接修改配置文件的方法,可以一劳永逸的解决 Matplotlib 的中文乱码问题。注意此过程在 Windows 环境下进行。
第二步:Matplotlib 从配置文件 matplotlibrc 中读取相关配置信息,比如字体、样式等,因此我们需要对该配置文件进行更改。首先查看 matplotlibrc 所在的目录,使用如下代码确定目录位置:
import matplotlib
matplotlib.matplotlib_fname()
第三步:然后修改配置文件 matplotlibrc。打开配置文件后,找到以下信息:
#font.family: sans-serif
#font.serif: DejaVu Serif, Bitstream Vera Serif, Computer Modern Roman, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif
注意:text中可能查找不到,可以拷贝到word中查找即可。
第四步:将上述配置项前面的#去掉,并修改的配置项,如下所示:
font.family : Microsoft YaHei, sans-serif
font.serif: Microsoft YaHei, DejaVu Serif, Bitstream Vera Serif, Computer Modern Roman, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif
第五步:最后,在以下目录中复制中文字体微软雅黑:C:\Windows\Fonts\Microsoft YaHei UI
第六步:复制完成后,将字体粘贴至以下路径文件中:D:\python\python37\lib\site-packages\matplotlib\mpl-data\fonts\ttf,根据软件安装情况,有可能也在C盘。
方法二:使用思源黑体,思源黑体是 Adobe 与 Google 推出的一款开源字体。在
官网:思源宋体
GitHub 地址:source-han-sans/OTF/SimplifiedChinese at release · adobe-fonts/source-han-sans · GitHub
上下载相应字体放到程序文件夹中,使用代码:zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf")即可。
例如:
import numpy as np from matplotlib
import pyplot as plt import matplotlib
# fname 为 你下载的字体库路径,注意 SourceHanSansSC-Bold.otf 字体的路径
zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf")
x = np.arange(1,11)
y = 2 * x + 5
plt.title("测试", fontproperties=zhfont1) # fontproperties 设置中文显示,fontsize 设置字体大小 plt.xlabel("x 轴", fontproperties=zhfont1)
plt.ylabel("y 轴", fontproperties=zhfont1) plt.plot(x,y)
plt.show()
方法三、使用系统的字体:
在代码执行前增加一行代码:
plt.rcParams['font.family']=['STFangsong']#STFangsong为仿宋字体
可以将系统中的字体打印出来:
from matplotlib import pyplot as plt
import matplotlib
a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
for i in a:
print(i)
在打印出来的字体里选择合适的字体即可
未完,发现时再及时补充。。。。
本文介绍了处理Python中打开中文文件报错和matplotlib无法显示中文的三种方法:1. 检查文件编码或在open()函数中指定utf-8编码;2. 永久修改matplotlibrc配置文件,设置字体为微软雅黑;3. 使用思源黑体或其他系统字体显示中文。详细步骤包括字体配置和路径调整。
1542

被折叠的 条评论
为什么被折叠?



