Traceback (most recent call last): File "D:/python/词云分析01/01.py", line 9, in <module> wordcloud = WordCloud(width = 800,height = 600,background_color = "white").generate_from_frequencies(word_counts) File "C:\Users\86150\AppData\Local\Programs\Python\Python39\lib\site-packages\wordcloud\wordcloud.py", line 453, in generate_from_frequencies self.generate_from_frequencies(dict(frequencies[:2]), File "C:\Users\86150\AppData\Local\Programs\Python\Python39\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:\Users\86150\AppData\Local\Programs\Python\Python39\lib\site-packages\PIL\ImageDraw.py", line 771, in textbbox return self.multiline_textbbox( File "C:\Users\86150\AppData\Local\Programs\Python\Python39\lib\site-packages\PIL\ImageDraw.py", line 818, in multiline_textbbox raise ValueError(msg) ValueError: anchor not supported for multiline text这种问题怎么解决
时间: 2023-07-06 20:42:52 浏览: 270
这个错误出现在使用WordCloud库时,当生成词云时,出现了某些单词的文本框(bounding box)没有正确地设置位置。解决这个问题有两种方法:
1. 使用单行文本框(bounding box)。在WordCloud对象中设置参数max_words=1,使每个单词只使用一个单行文本框来显示。这样就避免了多行文本框(bounding box)不支持“anchor”参数的问题。
2. 更改WordCloud库中的代码。在WordCloud库中找到 `wordcloud.py` 文件,找到函数 `fit_words(self, words)`,并将其中的 `transposed_font = ImageFont.TransposedFont(font, orientation=Image.ROTATE_90)` 替换为 `transposed_font = font`. 然后保存文件并重新运行程序。
无论哪种方法,都可以解决这个问题。
相关问题
Traceback (most recent call last): File "C:/Python38/pythonProject/poi.py", line 60, in <module> jsonf = urllib.urlopen(url) Traceback (most recent call last): File "C:/Python38/pythonProject/poi.py", line 60, in <module> jsonf = urllib.urlopen(url) AttributeError: module 'urllib' has no attribute 'urlopen'
您遇到的错误是因为urllib模块中没有urlopen这个属性。Python 3中urllib模块被分为了urllib.request、urllib.parse、urllib.error等子模块。
要解决这个问题,您可以将代码中的urllib替换为urllib.request。请尝试以下修改:
```python
import urllib.request
url = "your_url_here"
jsonf = urllib.request.urlopen(url)
```
这样应该可以解决您的问题。如果还有其他问题,请随时提问。
(base) root@4235009d9f30:/home/coder# /root/anaconda3/bin/python /home/coder/project/词云生成.py Traceback (most recent call last): File "/home/coder/project/词云生成.py", line 9, in <module> wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text) File "/root/anaconda3/lib/python3.8/site-packages/wordcloud/wordcloud.py", line 639, in generate return self.generate_from_text(text) File "/root/anaconda3/lib/python3.8/site-packages/wordcloud/wordcloud.py", line 621, in generate_from_text self.generate_from_frequencies(words) File "/root/anaconda3/lib/python3.8/site-packages/wordcloud/wordcloud.py", line 453, in generate_from_frequencies self.generate_from_frequencies(dict(frequencies[:2]), File "/root/anaconda3/lib/python3.8/site-packages/wordcloud/wordcloud.py", line 508, in generate_from_frequencies box_size = draw.textbbox((0, 0), word, font=transposed_font, anchor="lt") File "/root/anaconda3/lib/python3.8/site-packages/PIL/ImageDraw.py", line 657, in textbbox bbox = font.getbbox( AttributeError: 'TransposedFont' object has no attribute 'getbbox'
这个错误通常是由于`wordcloud`库的一个已知问题引起的,该问题会在使用某些字体时导致属性错误。
为了解决这个问题,你可以尝试使用另一个字体来生成词云。你可以通过指定`font_path`参数来选择一个字体文件,该文件应该是你系统上可用的字体文件之一。
以下是更新后的代码示例:
```python
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取文本文件
with open('/home/coder/project/比亚迪汉关键词', 'r', encoding='utf-8') as file:
text = file.read()
# 创建词云对象并指定字体文件路径
font_path = "/path/to/your/font.ttf" # 替换为你系统上可用的字体文件路径
wordcloud = WordCloud(width=800, height=400, background_color='white', font_path=font_path).generate(text)
# 绘制词云图像
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
```
请确保将`font_path`替换为你系统上可用的字体文件路径。你可以在系统字体目录中查找可用的字体文件。如果你不确定字体文件的路径,可以尝试使用绝对路径。
如果问题仍然存在,请尝试使用不同的字体文件或更新`wordcloud`库的版本。
希望这能解决你的问题!如有其他疑问,请随时提问。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)