java中的接口是类吗
495
2022-08-29
用wordcloud搞词云,大数据词云,自定义图像(wordcloud生成词云有两种方法)
准备工作:
pip install jieba #分词用的pip install wordcloud #主角pip install imageio #读取文件用的
View Code
接下来讲解一下这个包下面主要分为4大类:
"""类 功能WordCloud([font_path, width, height, …]) 生成和绘制词云对象ImageColorGenerator(image[, default_color]) 基于图片的色彩random_color_func([word, font_size, …]) 随机生成颜色get_single_color_func(color)创建一个颜色函数,它返回一个色调和饱和度"""
View Code
接下来主角WordCloud 的参数方法:
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 词云图显示的最小字体,默认为412 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 字体大小与词频的关系,默认值为auto19 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 是否包含数字,默认我False26 min_word_length 最小数量的词,默认为027 collocation_threshold 默认为30,整体搭配的评分等级28 """
View Code
主角下面有哪些方法呢?
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基本操作:
import wordcloudfont_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自定义图形轮廓图:
# 生成带有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
-----------------------------------------------------------------------------------------------------------------------------------------
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~