Python使用Matplotlib绘图解决中文字体显示问题的方法

问题描述
在Python利用Matplotlib绘图的时候,无法显示坐标轴上面的中文和标题里面的中文

import numpy as np
from matplotlib import pyplot as plt
import chinesename

cn = chinesename.ChineseName()
name_list = cn.getNames(10)

rand_numbers = np.random.choice(np.arange(1,11),size=10,replace=False)

plt.xlabel('name')
plt.ylabel('number')

plt.plot(name_list,rand_numbers,'ob')
plt.show()

运行显示:

解决方法一:

#解决制图时不显示中文的方法,设置字体
import matplotlib
matplotlib.rc("font", family='Microsoft YaHei')

解决方法二:

plt.rcParams['font.sans-serif'] = 'SimHei' 

两种方法都可以使中文正常显示

补充:
SimSun :宋体;KaiTI:楷体;Microsoft YaHei:微软雅黑
LiSu:隶书;FangSong:仿宋;Apple LiGothic Medium:苹果丽中黑;

此外,在图表中可以显示中文后,需要对‘-’的显示进行操作,不然数据中的负号会显示不了,

import numpy as np
from matplotlib import pyplot as plt
#解决制图时不显示中文的方法一
import matplotlib
matplotlib.rc("font", family='LiSu')
##解决制图时不显示中文的方法二
# plt.rcParams['font.sans-serif'] = 'SimHei'

x = np.arange(-10,10)
y = x*2+5

plt.title('图表Y=X×2+5')
plt.xlabel('x值')
plt.ylabel('y值')

plt.plot(x,y)
plt.show()

只需加上如下代码即可:

#当字体支持中文后,必须设置负号,否则当数值中出现负号就无法显示

 plt.rcParams['axes.unicode_minus']=False

物联沃分享整理
物联沃-IOTWORD物联网 » Python使用Matplotlib绘图解决中文字体显示问题的方法

发表评论