0
点赞
收藏
分享

微信扫一扫

用wordcloud搞词云,大数据词云,自定义图像

准备工作:

用wordcloud搞词云,大数据词云,自定义图像_词云用wordcloud搞词云,大数据词云,自定义图像_词频_02

pip install jieba #分词用的
pip install wordcloud #主角
pip install imageio #读取文件用的

View Code

接下来讲解一下这个包下面主要分为4大类:

用wordcloud搞词云,大数据词云,自定义图像_词云用wordcloud搞词云,大数据词云,自定义图像_词频_02

"""
类 功能
WordCloud([font_path, width, height, …]) 生成和绘制词云对象
ImageColorGenerator(image[, default_color]) 基于图片的色彩
random_color_func([word, font_size, …]) 随机生成颜色
get_single_color_func(color)创建一个颜色函数,它返回一个色调和饱和度

"""

View Code

接下来主角WordCloud 的参数方法:

用wordcloud搞词云,大数据词云,自定义图像_词云用wordcloud搞词云,大数据词云,自定义图像_词频_02

1 """
2 参数 详解
3 font_path 词云图的字体路径(OTF或TTF格式)
4 width 画布的宽度、默认为400,如果mask不为空时,设置为mask获取图片的大小
5 height 画布的高度,默认为200,如果mask不为空时,设置为mask获取图片的大小
6 prefer_horizontal 默认值0.9;当值<1时,遇到不合适的地方时,算法将词体自动旋转
7 mask 默认为None;如果不为空,指定了画布的图形,则width和height值不生效,使用提供的图形的大小
8 contour_width 如果mask不为空,并且contour_width>0,将描绘出mask获取图片的轮廓,值越大,轮廓的线越粗
9 contour_color 使用Mask时,描绘图片轮廓的颜色
10 scale 图片生成后放大缩小时的分辨率
11 min_font_size 词云图显示的最小字体,默认为4
12 max_font_size 词云图显示的最大字体
13 max_words 词云显示的最大词数
14 font_step 字体步长
15 stopwords 不显示的词,如果没有设置,则使用默认的内置的STOPWORdS列表;如果使用generate_from_frequencies参数,则忽略
16 background_color 背景颜色
17 mode 默认为"RGB",当mode="RGBA"并且background_color为None时,将会显示透明背景
18 relative_scaling 字体大小与词频的关系,默认值为auto
19 color_func 默认为None,color_func=lambda *args, **kwargs:(255,0,0)词云的字体颜色将这设置为红色
20 regexp 使用正则切分,默认为r"\w[\w’]+",如果使用generate_from_frequencies则此参数不生效
21 collocations 是否包含两个词的搭配,默认为True,如果使用generate_from_frequencies则此参数不生效
22 colormap 设置颜色的参数,默认为"viridis",如果使用color_func参数,则此参数不生效
23 normalize_plurals 是否删除尾随的词,比如’s,如果使用generate_from_frequencies参数,则此参数不生效
24 repeat 是否重复词组直到设置的最大的词组数
25 include_numbers 是否包含数字,默认我False
26 min_word_length 最小数量的词,默认为0
27 collocation_threshold 默认为30,整体搭配的评分等级
28 """

View Code

主角下面有哪些方法呢?

用wordcloud搞词云,大数据词云,自定义图像_词云用wordcloud搞词云,大数据词云,自定义图像_词频_02

1 """
2 方法
3 fit_words() 根据词频生成词云
4 generate_from_frequencies() 根据词频生成词云
5 generate() 根据文本生成词云
6 generate_from_text() 根据文本生成词云
7 process_text() 将长文本分词,并去除屏蔽词
8 recolor() 对输出颜色重新着色
9 to_array() 转换为numpy数组
10 to_file() 保存为图片文件
11 to_svg() 保存为SVG(可缩放矢量图形)
12
13 """

View Code

实战例子1基本操作:

用wordcloud搞词云,大数据词云,自定义图像_词云用wordcloud搞词云,大数据词云,自定义图像_词频_02

import wordcloud
font_path = "./fonts/华文琥珀.ttf"
# w = wordcloud.WordCloud(font_path=font_path,#字体
# width=100,#宽度
# height=100,#高度
# margin=10,#外边距
# background_color="black",#背景色
# # scale=100,#别设置这个,
# mode="RGBA",#假的,默认为RGB
# max_words=300,#最多显示几个词
# random_state=1,#指定了以后,所有的随机都会不变
# min_font_size=4,#最小字体大小
# include_numbers=False,#不会画数字
# min_word_length=0, #最小的高度
# collocation_threshold=30,#默认为30,整体搭配的评分等级
# )
# text = """
# Love is not a matter of counting the days. ...
# 2.With the wonder of your love, the sun above ...
# 3.Love is a fabric that nature wove and ...
# 4.First love is unforgettable all one's life. ...
# 5.In the very smallest cot there is room ...
# """
# w.generate(text)
# w.to_file('output1.png')

View Code

实战例子2自定义图形轮廓图:

用wordcloud搞词云,大数据词云,自定义图像_词云用wordcloud搞词云,大数据词云,自定义图像_词频_02

# 生成带有mask的图片,你生不成图片是因为你的词汇量太少,词汇量越大,效果越好。
mask = np.array(Image.open("62.jpg"))
with open("text.txt","r")as f:
text = f.read()
wordcloud = wordcloud.WordCloud(font_path=font_path, mask=mask, margin=1, random_state=1, background_color='white').generate(text)
wordcloud.to_file('wordcloud_mask.jpg')

View Code

 

-----------------------------------------------------------------------------------------------------------------------------------------

举报

相关推荐

0 条评论