ValueError: Only supported for TrueType fonts,生成词云图时字体报错
引言
之前一段时间做自然语言处理需要词云图,写完代码一直报这个错误,我确定代码没什么错误,可就是运行不起来。
之后在网上查找解决措施,主要就是让我再确定字体路径是否写错,或换种字体试试这两个办法,结果根本没用。
后来我突然想到我的wordcloud是直接用pip install wordcloud安装的,直接安装的最新版,可能就是因为最新版才报错的,所以我开始降本。
1.为了保险起见,直接下载whl文件安装
下载地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

下载好自己对应的python版本的whl文件之后,将whl文件移到python的安装目录下的D:\Python3.6.7\Scripts里面,以便后面安装。
2.卸载高版本wordcloud,安装对应版本的wordcloud.whl文件
前提你所用的python版本为默认版本,直接win+R调出命令提示符,输入cmd回车。
(1)先卸载高版本wordcloud库
运行命令:pip uninstall wordcloud
(2)安装wordcloud.whl文件
运行命令:pip install D:\Python3.6.7\Scripts\wordcloud-1.8.1-cp36-cp36m-win_amd64.whl
注意:红色字体是你们自己的python包的安装路径,蓝色字体是whl文件的全名,记得加上.whl后缀。

这样就安装成功了。
3.检验结果


运行成功!
4.代码示例
注意:读取文本中的文本路径是我自己的,要改成你自己的文本路径;字体路径是电脑自带的,如果不同,也可以根据自己的字体路径修改。
import jieba
import wordcloud
# 读取文本
with open("./data/iu.txt",encoding="utf-8") as f:
s = f.read()
ls = jieba.lcut(s) # 生成分词列表
text = ' '.join(ls) # 连接成字符串
wc = wordcloud.WordCloud(font_path='C:\Windows\Fonts\STZHONGS.TTF',
width=1000,
height=700,
background_color='white',
max_words=100)
wc.generate(text) # 加载词云文本R
wc.to_file("1.png") # 保存词云文件