Python利用Matplotlib绘图无法显示中文字体的两种解决方案

 更新时间:2024年03月30日 11:54:02   作者:宜城豆腐面  
matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,这篇文章主要给大家介绍了关于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

总结 

到此这篇关于Python利用Matplotlib绘图无法显示中文字体的两种解决方案的文章就介绍到这了,更多相关Python Matplotlib绘图无法显示中文字体内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论