from wordcloud import WordCloud
import jieba
import PIL
import matplotlib.pyplot as plt
import numpy as np
def wordcloudplot(txt):
path = r'C:/Users/wjt/Desktop/msyh.ttf'
alice_mask = np.array(PIL.Image.open('C:/Users/wjt/Desktop/timg.jpg'))
wordcloud = WordCloud(font_path=path,
background_color="white",
margin=5, width=1800, height=800, mask=alice_mask, max_words=2000, max_font_size=60,
random_state=42)
wordcloud = wordcloud.generate(txt)
wordcloud.to_file('C:/Users/wjt/Desktop/hhhaa.jpg')
plt.imshow(wordcloud)
plt.axis("off")
plt.show()
def main():
a = []
f = open(r'C:/Users/wjt/Desktop/tlbb.txt', 'r').read()
words = list(jieba.cut(f))
for word in words:
if len(word) > 1:
a.append(word)
txt = r' '.join(a)
wordcloudplot(txt)
if __name__ == '__main__':
main()
哈哈,这次不按套路出牌,先直接上代码,首先要安装PIL,wordcloud,jieba。。我在安装的时候报VC9.0错误,根据错误返回的信息:error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27到这个网站里面下载安装VC组件。分析下,path=r"C:/User/......."必须要有的,不然生成不了中文词云。alice_mask是结构图,也就是这只鸟,经过测试白底颜色鲜明的图才能生成结构清晰的词云。wordCloud的构造函数意思如下
background_color = 'white', # 设置背景颜色
mask = alice_mask, # 设置背景图片max_words = 2000, # 设置最大现实的字数
stopwords = STOPWORDS, # 设置停用词
font_path = path,# 设置字体格式,如不设置显示不了中文
max_font_size = 50, # 设置字体最大值
random_state = 30, # 设置有多少种随机生成状态,即有多少种配色方案
然后就是设置生成图片的路径,设置文字,开始生成。