可视化-词云图

参考:https://blog.csdn.net/kun1280437633/article/details/89474284

1、前期步骤:

  • 获得一份待分析的文本数据,使用jieba库将这些段落划分成词;
  • 分词后,根据分词结果生成词云,使用wordcloud;
  • 使用matplotlib进行展现;
#导入对应的库
import jieba
import matplotlib.pyplot as plt
from PIL import Image
from wordcloud import WordCloud

#导入文本数据并进行简单的文本处理
#去掉换行符和空格
text=open("./data/文本.txt",encoding='utf-8').read()
text=text.replace("\n","").replace("\u30000","")

#分词,返回结果是词的列表
text_cut=jieba.lcut(text)
text_cut='  '.join(text_cut)#用某个符号连接为字符串
#导入停词,用于去除文本中得到停词,如'啊','的'
stop_words=open("./data/stop_words.txt",encoding='utf8')
#生成词云
word_cloud=WordCloud(font_path="simsun.ttc",#设置词云字体
			background_color="white",#词云图的背景颜色
			mask=graph,#指定词云形状
			collocations=False,#去掉重复词
			stopwords=stop_words)#去掉的停词
word_cloud.generate(text_cut)
#运用matplotlib展现结果
plt.subplots(figsize=(12,8))
plt.imshow(word_cloud)
plt.axis("off")
plt.show()
参数名数据类型作用备注
font_pathstring导入字体font_path=“黑体.ttf”
widthint画布宽度默认400
heightint画布高默认200
prefer_horizontalfloat词语水平方向排版出现的频率默认为0.9
masknd-array or None如果参数为空,则使用二维遮罩绘制词云,如果非空,设置的宽高被忽略,以输入的遮罩形状绘制词云,除白色部分不被绘制,其余部分皆用于绘制词云形状
scalefloat按比例放大画布默认为1
min_font_sizeint显示的最小字体大小默认为4
font_stepint字体步长,如果步长大于1,运算加快,但结果可能出现偏差默认为1
max_wordsnumber要显示的词的最大个数默认200
stopwordsset of string or None设置需要屏蔽的词如果为空,使用内置STOPWORDS
backgroud_colorcolor value背景颜色默认为black
max_font_sizeint or None显示最大字体的大小默认为None
modestring当参数为RGBA且backgroud_color不为空时,背景为透明默认为RGB
relative_scalingfloat词频和字体大小的关联性默认为.5
color_funccallable生成新颜色的函数,如果为空则使用self.color_func默认为None
regexpstring or None使用正则表达式分隔输入文本
collocationsbool是否包括两个词的搭配false去掉重复词
colormapstring or matplotlib colormap给每个单词随机分配颜色,如果设定color_func则忽略该方法默认为viridis
WordCloud对象的函数
  • fit_word(frequencies) 根据词频生成词云
  • generate(text) 根据文本生成词云
  • generate_from_frequencies(frequencies[,…]) 根据词频生成词云
  • generate_from_text(text) 根据文本生成词云
  • process_text(text) 将长文本分词并去除屏蔽词(只针对英文)
  • recolor([random_state,color_func,colormap]) 对现有输出重新着色
  • to_array() 转化为numpy array
  • to_file(filename) 输出到文件图像文件
from wordcloud import ImageColorGenerator
#颜色函数的设计
def ranfom_color(word,font_size,position,orientation,font_path,random_state):
	s='hsl(0,%d%%,%d%%)'%(random.randint(60,80),random.randint(60,80))
	return s

#使用图片原色上色
image_colors=ImageColorGenerator(mask)
wc.recolor(color_func=image_colors)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值