我正在尝试使用txt文件中的文本创建wordcloud。
到目前为止,这是我的代码import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS
file_content=open ("tweets.txt").read()
wordcloud = WordCloud(font_path = 'C:\Windows\Fonts\Verdana.tff',
stopwords=STOPWORDS,
background_color = 'white',
width=1200,
height=1000
).generate(file_content)
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
运行此代码后显示的错误是:
File "WordCloud.py", line 14, in <module>
).generate(file_content)
File "C:\Python27\lib\site-packages\wordcloud\wordcloud.py", line 448, in generate
return self.generate_from_text(text)
File "C:\Python27\lib\site-packages\wordcloud\wordcloud.py", line 434, in generate_from_text
self.generate_from_frequencies(words)
File "C:\Python27\lib\site-packages\wordcloud\wordcloud.py", line 317, in generate_from_frequencies
font = ImageFont.truetype(self.font_path, font_size)
File "C:\Python27\lib\site-packages\PIL\ImageFont.py", line 238, in truetype
return FreeTypeFont(font, size, index, encoding)
File "C:\Python27\lib\site-packages\PIL\ImageFont.py", line 127, in __init__
self.font = core.getfont(font, size, index, encoding)
IOError: cannot open resource
奖励问题:如何更改文字颜色?
答案 0 :(得分:1)
如上所述,请将字体更改为ttf
,但我建议您在其前面添加r
,以避免使用反斜杠意外转义。
要添加自己的配色方案,您需要添加颜色回调功能,例如random_color_func
。这个用随机L和固定的H和S构建HSL类型的颜色。
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS
def random_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None):
h = int(360.0 * 45.0 / 255.0)
s = int(100.0 * 255.0 / 255.0)
l = int(100.0 * float(random_state.randint(60, 120)) / 255.0)
return "hsl({}, {}%, {}%)".format(h, s, l)
file_content=open ("tweets.txt").read()
wordcloud = WordCloud(font_path = r'C:\Windows\Fonts\Verdana.ttf',
stopwords = STOPWORDS,
background_color = 'white',
width = 1200,
height = 1000,
color_func = random_color_func
).generate(file_content)
plt.imshow(wordcloud)
plt.axis('off')
plt.show()