python或pycharm处理中文时遇到问题解决方法

本文介绍了处理Python中打开中文文件报错和matplotlib无法显示中文的三种方法:1. 检查文件编码或在open()函数中指定utf-8编码;2. 永久修改matplotlibrc配置文件,设置字体为微软雅黑;3. 使用思源黑体或其他系统字体显示中文。详细步骤包括字体配置和路径调整。

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)

在打印出来的字体里选择合适的字体即可

未完,发现时再及时补充。。。。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值