问题描述
在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

总结
到此这篇关于python利用matplotlib绘图无法显示中文字体的两种解决方案的文章就介绍到这了,更多相关python matplotlib绘图无法显示中文字体内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论