利用wordcloud将爬取的文本信息绘制成指定轮廓的图片
先上代码
import matplotlib.pylab as plt
from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS
import codecs #可以指定编码打开
from imageio import imread #将图片变成多维数组
from os import path
class Draw_cloud():
def init(self):
self.font_path ="./font/simhei.ttf" #设置字体的路径
self.image_path = “timg.jpg” #设置图片路径
self.jieba_result =“jieba_result.txt”
#把图片变成多维数组 然后用文字替换
def get_info(self):
d =path.dirname(__file__) #获取当前文件的操作路径
image =imread(self.image_path) #将图片变为多维数组 实现与文字的交互
text =codecs.open(path.join(d,self.jieba_result),"rb",encoding="utf-8").read()#用二进制读取分词之后的评论信息
self.draw_pic(image,text)
def draw_pic(self,image,text):
stopwords =set(STOPWORDS) #使用默认的屏蔽词汇 一个集合
wordcloud = WordCloud(font_path=self.font_path,mask=image,
stopwords=stopwords,background_color="white",max_words=2000,max_font_size=200
).generate(text) #(字体位置,图片数组,屏蔽字,背景色,最大次数,以及字体最大限制).二进制文字信息(使用二进制文字与图片交互)
image_color = ImageColorGenerator(image) #设置文字的颜色为背景图片颜色
wordcloud.to_file("wordcloud.jpg") #给生成的词云命名
plt.imshow(wordcloud.recolor(color_func=image_color))#指定生成词云颜色
plt.axis("off") #不显示坐标轴
plt.show()
Fun =Draw_cloud()
Fun.get_info()
处理结果和所用的背景图如下
本篇主要是为了保存代码,没有深入研究wordcloud的使用,只是初步了解其用途,待深入了解后做个补充。