赞
踩
import jieba #中文分词包 from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator from PIL import Image import numpy as np import matplotlib.pyplot as plt from os import path #define the absolute path for directory d = "C:\\Users\\GXP\\Desktop\\worldcloud" #path.join实现文件地址的链接,open则打开相应的文件,read则读取相应的文件 text = open(path.join(d, 'love_words.txt')).read() #if txt contain chinese words, recommand to use jieba model chtext = '' with open(path.join(d, 'love_words.txt'),'r') as fin: for line in fin.readlines(): line = line.strip('\n') chtext += ' '.join(jieba.cut(line)) #调用包PIL中的open方法,读取图片文件,通过numpy中的array方法生成数组 backgroud_Image = np.array(Image.open(path.join(d, "love.png"))) #停用词可以如下定义,也可以在WordCloud中定义.停用词的增加和删除操作如下 stopwords = set(STOPWORDS) #绘制词云图 wc = WordCloud( background_color='white',# 设置背景颜色 mask=backgroud_Image,# 设置背景图片 font_path='C:\\Windows\\Fonts\\STZHONGS.TTF', # 若是有中文的话,这句代码必须添加,不然会出现方框,不出现汉字 max_words=200, # 设置最大现实的字数 stopwords = STOPWORDS,# 设置停用词,停用词则不再词云图中表示 也可以直接有字符串,设置停用词stopwords = 'to' max_font_size=150,# 设置字体最大值 random_state=1,# 设置有多少种随机生成状态,即有多少种配色方案 scale = 5#设置生成的词云图的大小 #regexp = 'to'#设置词语文字段的解析的分隔字段 ) #传入需画词云图的文本,与该方法作用相同generate_from_text(text) wc.generate(chtext) # 展示图片 #根据原始背景图片的色调进行上色 image_colors = ImageColorGenerator(backgroud_Image) plt.imshow(wc.recolor(color_func=image_colors)) #根据原始黑白色调进行上色 #plt.imshow(wc.recolor(color_func=grey_color_func, random_state=3), interpolation='bilinear') #生成黑白词云图 #根据函数原始设置进行上色 #plt.imshow(wc) #隐藏图像坐标轴 plt.axis("off") plt.show() # 保存生成的词云图 wc.to_file(path.join(d, "gengrate_love_star.png"))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。