Matplotlib.pyplot(不显示汉字的解决办法)Mac版
程序员文章站
2022-03-21 10:31:47
...
我的python教程中说输入
plt.rcParams['font.sans-serif']=['SimHei']
就会让图表中的title()和xlabel()、ylabel()可以正常显示汉字,但是在我的Mac中不能奏效,所以我参考了其他的方案Matplotlib pyplot中title() xlabel() ylabel()无法显示中文(即显示方框乱码)的解决办法
这个作者用的方法适用于windows,可以从里边的路径中看出(第三行代码):
1 from matplotlib import pyplot
2 from matplotlib.font_manager import FontProperties
3 font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=15)
4
5 pyplot.title(u'中文', fontproperties=font_set)
6 pyplot.xlabel(u'中文', fontproperties=font_set)
7 pyplot.ylabel(u'中文', fontproperties=font_set)
Mac的字体路径与windows不一样,我在终端中输入以下路径找到了Mac的字体列表:
即输入:
cd /System/Library/Fonts
ls
输入这两行代码即可看到Mac的字体列表,从中选取你钟意的字体,如我选择的是STHeitiMedium.ttc
然后将路径和字体文件合并后取代原作者输入的windows路径,即可正常显示文字:
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font_set = FontProperties(fname=r"/System/Library/Fonts/STHeiti Medium.ttc", size=15)
plt.title(u'双骰子点数之和分布', fontproperties=font_set) # 图表标题
plt.xlabel(u'点数', fontproperties=font_set) # x轴标签
plt.ylabel(u'出现次数', fontproperties=font_set) # y轴标签
转换成功!!!
总结:
- 代码前三行用于转换中文字体,如果是mac一定要将路径取代为mac的字体路径
- 代码后三行只是一个例子,要完成字体转换,核心是要在输入的文本字符串后加上
,fontproperties=font_set