“ 一款制作词云的软件!”
01、什么是词云?
我们要制作词云,那什么是词云呢?
【中文】词云。又称文字云。
【英文】wordle
【释义】由词汇组成类似云的彩色图形。
还是不懂吗?那来看一下具体事例:
02、代码实现
怎么样!是不是很不错,是不是有点小心动,请压抑住心中的躁动,不要急,慢慢来。
首先,是词云的代码实现:
1.需要使用到的模块:
pip install jieba(结巴)#真搞不懂写这个模块的人,怎么用拼音来写,这个模块有点容易让人误解,加注释
pip install wordcloud
注:在安装时可能会出现错误,需要使用其他环境,在文章后面获取连接。
pip install scipy
pip install matplotlib
代码语言:javascript复制import jieba.analyse
from wordcloud import WordCloud,ImageColorGenerator
from scipy.misc import imread
import matplotlib.pyplot as plt
from tkinter import *
2.生成词云代码实现:
代码语言:javascript复制class wc:
def __init__(self,txt_file,img_file,font_file):
self.txt = open(txt_file,'r').read()
self.tags = jieba.analyse.extract_tags(self.txt,topK=100)
#topK说白了就是返回几个关键词
self.text = ' '.join(self.tags) #把分词链接起来,加空格因为英文靠空格分词
self.img = imread(img_file)
self.wc = WordCloud(font_path=font_file,background_color='white',max_words=200,mask=self.img,max_font_size=40)
###直接在这里进行猜###
#font_path指的是字体文件路径,因为wordcloud自带的字体不支持中文所以我们要指定一个字体文件,否者输出的图片全是框框
#background_color 默认是黑色 我设置成白色
#max_words最大显示的词数
#mask 背景图片
#max_font_size 最大字体字号
self.word_cloud = self.wc.generate(self.text)
def show_wc(self):
# img_color = ImageColorGenerator(self.img)
plt.imshow(self.word_cloud)
# plt.imshow(self.wc.recolor(color_func=img_color))
#可以通过 plt.imshow(self.wc.recolor(color_func=img_color))使图片颜色跟字体颜色一样
plt.axis("off")
plt.savefig("词云.png")#保存图片
plt.show()#弹出窗口显示图片
3.用窗口实现:
代码语言:javascript复制def window(self):
window = Tk()
window.title("在线生成词云")
window.geometry("500x500 500 200")
Label(window,
text="在线生成词云", # 标签的文字
# bg='green', # 背景颜色
font=('楷体', 17), # 字体和字体大小
# width=15, height=2 # 标签长宽
).grid(row=0, column=0) # 固定窗口位置
Label(window,text="请输入文件路径:").grid(row=2, column=0)
self.a = Text(window, width=40, height=2)
self.a.insert(1.0,"文件.txt")
self.a.grid(row=2, column=1)
Label(window,text="请输入图片路径:").grid(row=3, column=0)
self.c = Text(window, width=40, height=2)
self.c.insert(1.0, "图片.jpg")
self.c.grid(row=3, column=1)
Button(window, text="生成词云", bg="lightblue", command=self.click).grid(row=4, column=1)
window.mainloop()
4.点击事件触发,重新调用生成词云的方法
代码语言:javascript复制def click(self):
self.f = self.a.get(1.0, END).strip().replace("n", "").encode().decode()
self.tu = self.c.get(1.0, END).strip().replace("n", "").encode().decode()
mywc = wc(self.f,self.tu,'STXINGKA.TTF')
mywc.show_wc()
5.启动运行
代码语言:javascript复制if __name__=='__main__':
mywc = wc("文件.txt","图片.jpg",'STXINGKA.TTF')
mywc.window()
到此,所有的代码编写完成,需要用到的图片,材料,已经打包上传网盘,公众号和后台回复 “词云” 获取源代码,已及图片文件。