ValueError: Only supported for TrueType fonts
时间: 2024-02-12 13:06:15 浏览: 168
Python ValueError: invalid literal for int() with base 10 实用解决方法
这个错误是因为您设置的字体不是 TrueType 字体。WordCloud 库只支持 TrueType 字体,如果您设置的字体不是 TrueType 字体,就会出现这个错误。
要解决这个问题,您需要使用 TrueType 字体。在 Windows 系统中,TrueType 字体的文件扩展名通常是 `.ttf`,在 Mac 系统中,TrueType 字体的文件扩展名通常是 `.ttc` 或 `.ttf`。您可以在字体文件的属性或信息中查看文件扩展名。
如果您不知道哪些字体是 TrueType 字体,可以在网上搜索并下载 TrueType 字体文件。下载后,将字体文件复制到您的 Python 项目文件夹中,然后在代码中设置字体路径为字体文件的路径即可。
例如,假设您下载了一个名为 `SimHei.ttf` 的 TrueType 字体文件,并将其复制到了您的 Python 项目文件夹中,您可以使用以下代码来生成词云图:
```python
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba
# 读取文本文件
with open("text.txt", "r", encoding="utf-8") as f:
text = f.read()
# 使用 jieba 分词
words = jieba.cut(text)
# 拼接分词结果为字符串
text = " ".join(words)
# 设置中文字体的路径
font_path = "SimHei.ttf"
# 生成词云图
wordcloud = WordCloud(font_path=font_path, width=800, height=800, background_color="white").generate(text)
# 显示词云图
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()
```
在上面的代码中,`font_path` 参数指定了 TrueType 字体文件的路径。将其替换为您自己的 TrueType 字体文件路径即可。
阅读全文