欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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的字体列表:
Matplotlib.pyplot(不显示汉字的解决办法)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轴标签

转换成功!!!
Matplotlib.pyplot(不显示汉字的解决办法)Mac版
总结:

  1. 代码前三行用于转换中文字体,如果是mac一定要将路径取代为mac的字体路径
  2. 代码后三行只是一个例子,要完成字体转换,核心是要在输入的文本字符串后加上 ,fontproperties=font_set