词汇云,由词汇组成类似云的彩色图形,用于展示大量文本数据。通常用于描述网站上的关键字元数据(标签),或可视化自由格式文本。 每个词的重要性以字体大小或颜色显示。“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。
1.准备工作
2.代码实现
导入库
import wordcloud #词汇云库
from wordcloud import STOPWORDS # 停止词
import jieba
import numpy as np # 科学计算
import matplotlib # 数据可视化
from matplotlib import pyplot as plt
from PIL import Image # 图片处理
切割文本
# 读取文本
pythonInfo = open(r'aaa.txt',
encoding='utf-8', errors='ignore').read()
# print(pythonInfo)
# 切割
pythonCut = jieba.cut(pythonInfo, cut_all=True)
pythonInfoList = ' '.join(pythonCut) # 返回一个生成器对象
print(pythonInfoList)
设置图片参数
backgroud = np.array(Image.open('1.jpg')) # 将图片格式化成RBG数组
myCloudword = wordcloud.WordCloud(font_path='simkai.ttf', # 指定文体文件的路径,默认None
width=400, height=200,
mask=backgroud, # 指定词云形状,默认为长方形
scale=1, # 比例
max_words=200, # 指定词云显示的最大单词数量,默认200
min_font_size=4, # 指定词云中字体的最小字号,默认4号(min_font_size=10)
stopwords=STOPWORDS, # 默认停止词 指定词云的排除词列表,即不显示的单词列表
random_state=50, # 随机角度
background_color='white', # 背景颜色
max_font_size=100 # 指定词云中字体的最大字号,根据高度自动调节
).generate(pythonInfoList) #向WordCloud对象中加载文本txt
绘制图片显示
plt.imshow(myCloudword) #绘制图片
plt.show() #打开所有图片