花开半夏—— 发表于 2024-4-10 21:05:51

wordcloud

backgroud_Image=plt.imread('p1.jpg')
wordcloud = WordCloud(font_path="C:\Windows\Fonts\simfang.ttf",# 字体
                      max_words=100,            # 选择前100词
                      background_color='white',# 背景颜色为白色
                      mask=backgroud_Image)
my_wordcloud = wordcloud.fit_words(frequencies)
出现以下报错Traceback (most recent call last):
File "C:/Users/NZXY/Desktop/test.py", line 99, in <module>
    my_wordcloud = wordcloud.fit_words(frequencies)
File "C:\python36\lib\site-packages\wordcloud\wordcloud.py", line 389, in fit_words
    return self.generate_from_frequencies(frequencies)
File "C:\python36\lib\site-packages\wordcloud\wordcloud.py", line 454, in generate_from_frequencies
    max_font_size=self.height)
File "C:\python36\lib\site-packages\wordcloud\wordcloud.py", line 508, in generate_from_frequencies
    box_size = draw.textbbox((0, 0), word, font=transposed_font, anchor="lt")
File "C:\python36\lib\site-packages\PIL\ImageDraw.py", line 651, in textbbox
    raise ValueError("Only supported for TrueType fonts")
ValueError: Only supported for TrueType fonts怎么修改

FishC 发表于 2024-4-10 21:06:04

这个错误是由于所使用的字体不是TrueType字体引起的。您可以尝试在代码中更换为TrueType字体文件,并确保该文件存在。

首先,您需要下载一个TrueType字体文件(.ttf),例如思源宋体(SimSun)字体。然后修改代码如下:

from wordcloud import WordCloud
import matplotlib.pyplot as plt

background_Image = plt.imread('p1.jpg')
wordcloud = WordCloud(font_path="C:/Windows/Fonts/simsun.ttc",# TrueType字体文件路径
                      max_words=100,         
                      background_color='white',
                      mask=background_Image)
my_wordcloud = wordcloud.fit_words(frequencies)

请注意,`font_path`参数需要传入TrueType字体文件的完整路径,以`.ttc`或`.ttf`结尾。在Windows系统中,默认的中文字体存储在`C:/Windows/Fonts/`目录下。

如果您想使用其他字体,只需将字体文件路径替换成您所选择的TrueType字体文件即可。还可以调整其他参数,如`max_words`(选择显示的词的数量)和`background_color`(背景颜色)。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

花开半夏—— 发表于 2024-4-10 21:07:28

FishC 发表于 2024-4-10 21:06
这个错误是由于所使用的字体不是TrueType字体引起的。您可以尝试在代码中更换为TrueType字体文件,并确保该 ...

字体为ttf仍然报错,怎么办

FishC 发表于 2024-4-10 21:07:39

花开半夏—— 发表于 2024-04-10 21:07
字体为ttf仍然报错,怎么办

如果您仍然遇到TrueType字体的错误提示,可能是因为wordcloud库不支持ttf字体。您可以尝试使用其他字体文件格式,如OpenType字体(.otf)。首先,您需要下载一个OpenType字体文件(.otf),例如思源宋体(SimSun)字体。然后修改代码如下:from wordcloud import WordCloudimport matplotlib.pyplot as pltbackground_Image = plt.imread('p1.jpg')wordcloud = WordCloud(font_path="C:/Windows/Fonts/simsun.otf",# OpenType字体文件路径                      max_words=100,                               background_color='white',                      mask=background_Image)my_wordcloud = wordcloud.fit_words(frequencies)请注意,`font_path`参数需要传入OpenType字体文件的完整路径,以`.otf`结尾。在Windows系统中,默认的中文字体存储在`C:/Windows/Fonts/`目录下。如果您使用的字体是其他格式,可以适当调整字体路径和文件格式。如果您仍然遇到问题,请确保字体文件存在,并且您正在使用最新版本的wordcloud库。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

sfqxx 发表于 2024-4-10 21:09:36

gpt3.5不行的,得靠你自己

花开半夏—— 发表于 2024-4-10 21:10:35

sfqxx 发表于 2024-4-10 21:09
gpt3.5不行的,得靠你自己

{:9_222:}

sfqxx 发表于 2024-4-10 21:13:02

import matplotlib.pyplot as plt
from wordcloud import WordCloud
import numpy as np
from PIL import Image

# Assuming 'frequencies' is defined somewhere in your code
# and represents a dictionary of word frequencies.

# Load a background image
backgroud_Image = np.array(Image.open('p1.jpg'))

wordcloud = WordCloud(font_path="C:\\Windows\\Fonts\\arial.ttf",# Using Arial as the font
                      max_words=100,            # Selecting the top 100 words
                      background_color='white',# Setting the background color to white
                      mask=backgroud_Image)   # Using your background image

my_wordcloud = wordcloud.fit_words(frequencies)

# Display the generated word cloud
plt.imshow(my_wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()

isdkz 发表于 2024-4-10 21:44:47

sfqxx 发表于 2024-4-10 21:13


一眼gpt{:10_256:}

小甲鱼的二师兄 发表于 2024-4-11 03:38:15

ValueError: Only supported for TrueType fonts
应该是指定的字体有问题,换一个字体试试?

sfqxx 发表于 2024-4-11 17:12:06

isdkz 发表于 2024-4-10 21:44
一眼gpt

页: [1]
查看完整版本: wordcloud