概述
python使用matplotlib中文无法正常显示问题
本贴主要解决在matplotlib中显示中文字体无法显示正常显示问题。
中文字体不正常显示
在解决问题前先介绍一下如何找电脑中的字体,不适用可在网上另寻方法
C:WindowsFonts为本人电脑上字体所在目录,simsun.ttc为新宋体文件名称。自己电脑上的字体路径,请自行找办法寻找。
找到字体路径后,选择相应的字体,右键查看属性。
方法一无需加上.ttc后缀,第二种方法需要加上后缀,具体请以实际操作为准。(提示:不是所有字体后缀都是.ttc)
- 方法一:
import matplotlib
from matplotlib import pyplot as plt
font={
'family':'simsun', #设置字体,前提是系统中已安装
'weight':'bold', #设置粗细
'size':18 #设置字体大小
}
matplotlib.rc("font",**font)
#以上写法等同于以下的写法
#matplotlib.rc("font",family='simsun',weight='bold',size=18)
plt.figure(figsize=(20,8),dpi=80) #将图片拉伸,方便查看效果
x=range(10)
y=[1,4,3,5,4,3,1,2,3,4]
_x=["你好,{}".format(i) for i in range(10)]
plt.xticks(x,_x)
plt.plot(x,y)
plt.show()
中文正常显示
- 方法二:
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties
x=range(10)
y=[1,4,3,5,4,3,1,2,3,4]
plt.figure(figsize=(20,8),dpi=80) #将图片拉伸,方便查看效果
plt.plot(x,y)
_x=["你好,{}".format(i) for i in range(10)]
my_font=FontProperties(fname="C:WindowsFontssimsun.ttc",size=18)
plt.xticks(x,_x,font_properties=my_font)
plt.show()
注意!注意!注意!font_properties=my_font这个地方需要特别注意。我一开始的写法为plt.xticks(x,_x,fontproperties=my_font),导致中文还是无法正常显示,之后又改成plt.xticks(x,_x,FontProperties=my_font)这种写法,虽然正常显示了,但是日志还是会发出警告。警告如下:
MatplotlibDeprecationWarning: Case-insensitive properties were deprecated in 3.3 and support will be removed two minor releases later
plt.xticks(x,_x,FontProperties=my_font)
翻译一下大概意思就是:不区分大小写的属性在3.3中已被弃用,支持将在两个次要版本之后被删除。所以这里需要特别注意一下。
以上就是在matplotlib中使用中文字体无法正常显示的解决方案,本人亲测有效,希望能帮助到遇到相同问题的小伙伴。
最后
以上就是微笑嚓茶为你收集整理的python使用matplotlib中文无法正常显示问题的全部内容,希望文章能够帮你解决python使用matplotlib中文无法正常显示问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复