一、问题解析
问题说明:电脑上安装了Python3.8,最近遇到绘图,无法将中文标签显示,显示为空白方框。
原因:matplotlib默认的字体为英文字体,导致许多unicode编码的语言文字都无法书写。
python中没有自带的中文字体,我们可以通过修改自己的配置实现中文显示。
; 二、前期准备
1.首先先了解一下Python常用中文字体对应名称:
名称字体黑体SimHei微软雅黑Microsoft YaHei微软正黑体Microsoft JhengHei
2.首先查看自己的字体文件的位置,一般都是在 /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/
目录下。
可以使用命令进行查看:
import matplotlib.pyplot as plt
from matplotlib import font_manager
for font in font_manager.fontManager.ttflist:
print(font.name, '-', font.fname)
运行程序,可以看到两个路径:
- Python安装的时候,自带的字体,默认没有中文字体,我们针对此路径进行字体补充;
- 最后是MAC电脑中的字体,代码中可以通过指定字体的方式,完成中文展示(另外注意,此路径有权限设置,如作修改,需要输入MAC自己的密码。进行赋权)。
三、具体操作
我们针对第一个地址进行修改,进入对应路径进行修改配置。一共分为三步:
步骤1:下载对应中文字体,放置在字体文件夹里;
步骤2:修改对应配置文件matplotlibrc,为matplotlib的配置文件;
步骤3:删除系统缓存,重新开启程序,运行测试。
步骤1:下载字体 Simhei.ttf
(网上会有很多资源,直接下载即可,先是资源已存在,我就不上传了。)
; 步骤2:修改文件 matplotlibrc
修改前:
修改后:
font.family: sans-serif
font.sans-serif: Simhei, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
axes.unicode_minus: False
步骤3.删除缓存
首先查看自己电脑上的缓存路径:
import matplotlib
print(matplotlib.get_cachedir())
我自己电脑上地址为: /Users/xxxx/.matplotlib
,直接进入目录删除即可。(以自己实际的为准)
之后重新开启工具,就可以直接使用了。
import matplotlib.pyplot as plt
value = [11,11,10,7,6]
labels = ['中国','日本','美国','俄罗斯奥委会','澳大利亚']
colors=['red','yellow','green','cyan','blue']
plt.pie(
x = value,
labels=labels,
colors=colors,
autopct='%.2f%%',
explode=[0.1,0,0,0,0],
shadow=True,
textprops = {'fontsize':10, 'color':'black'},
)
plt.title('2020东京奥运会奖牌占比分析')
plt.show()
四、拓展
其他方式:MAC中本身自带了很多字体,可以代码中直接使用系统字体。
1.首次查看电脑中已有的所有字体.
from matplotlib.font_manager import FontManager
fm = FontManager()
mac_fonts = set(f.name for f in fm.ttflist)
print(mac_fonts)
结果显示如下:
2.字体展示如上,可以直接选用一个字体用于代码中指定。示例代码如下:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['Arial Unicode MS']
Value = [11,11,10,7,6]
labels = ['中国','日本','美国','俄罗斯奥委会','澳大利亚']
plt.pie(
x = Value,
labels=labels,
)
plt.title('2020东京奥运会金牌数分布')
plt.show()
展示如下:
Original: https://blog.csdn.net/dafu_dafu/article/details/119239639
Author: dafu_dafu
Title: MAC解决Python绘图中文无法显示问题
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/765052/
转载文章受原作者版权保护。转载请注明原作者出处!