python wordcloud 库简介

python 的 wordcloud 库用于生成各种漂亮的词云图,它依赖 numpy 库和 PIL 库。

wordcloud 库的官方参考为:

https://amueller.github.io/word_cloud/generated/wordcloud.WordCloud.html

一、wordcloud 有三个主要函数:

wordcloud.WordCloud(), wordcloud.ImageColorGenerator() 和 wordcloud.random_color_func()


1. wordcloud.WordCloud() 用于生成或者绘制词云的对象

 

class     
wordcloud.WordCloud(font_path=None,     #  字体路径(默认为 wordcloud 库下的 DroidSansMono.ttf 字体)。
                    width=400,    #  画布宽度(默认为400像素)。
                    height=200,     #  画布高度(默认为200)。
                    margin=2,    #  每个单词间的间隔 (默认为2)
                    ranks_only=None,    
                    prefer_horizontal=0.9,    #  词语水平方向排版出现的频率(默认为0.9。因为水平排版和垂直排版概率之和为 1,所以默认垂直方向排版为0.1。)
                    mask=None,    #  nd-array or None (default=None), 可简单理解为绘制模板。当 mask 不为 0 时,“画布”形状大小由 mask 决定,height 和 width 设置无效。
                    scale=1,    #  float (default=1)。计算和绘图之间的比例(就是放大画布的尺寸,也可以叫比例尺)。对于大型词云图,使用比例尺比设置画布尺寸会更快,但是单词匹配不是很好。
                    color_func=None,    
                    max_words=200,    #  number (default=200) 最大显示单词字数。
                    max_font_size=None,    #  int or None (default=None) 最大单词的字体大小,如果没有设置的话,直接使用画布的大小。
                    min_font_size=4,    
                    stopwords=None,    #  set of strings or None (停用词,被淘汰不用于显示的词语,默认使用内置的 stopwords)。
                    random_state=None,    
                    background_color='black',    #  color value (default=”black”) (词云图像的背景色,默认为黑色。)
                    font_step=1, mode='RGB',    
                    relative_scaling='auto',    #  float (default=’auto’) 词频大小对字体大小的影响度。如果设置为1的话,如果一个单词出现两次那么其字体大小为原来 的两倍。
                    regexp=None,    # string or None (optional) 使用正则表达式分割输入的字符。没有指定的话就使用r"\w[\w']+"。
                    collocations=True,    # bool, default=True 是否包括两个词的搭配(双宾语)
                    colormap=None,     # string or matplotlib colormap, default=”viridis”。颜色映射方法,每个单词对应什么颜色,就是根据这个colormap的。如果设置 color_func ,则设置的这个作废。
                    normalize_plurals=True,    
                    contour_width=0,     
                    contour_color='black',    
                    repeat=False,    #  bool, default=False  是否需要重复单词以使得总单词数量达到max_words。
           )

 

 

 

2. wordcloud.ImageColorGenerator( ) 依据彩色颜色生成颜色。单词将使用彩色图像中包围矩形的平均颜色进行着色。

 

class 
wordcloud.ImageColorGenerator(image,    # 用于生成单词颜色的图像
                              default_color=None,
                             )

 

 

 

3. wordcloud.random_color_func( ) 默认着色方法。选取一个随机色调,值80%和亮度50%。

 

wordcloud.random_color_func(word=None,    # 作色单词
                            font_size=None,    # 字体大小
                            position=None,    # 位置
                            orientation=None,    # 指向
                            font_path=None,    # 字体路径
                            random_state=None    # 随机状态
                )

 

 

二、词云图生成方法

wc = wordcloud.Wordcloud()

wc.fit_words(frequencies)   # 根据词频生成词云图
wc.generate_from_frequencies(frequencies[, …])  # 根据词频生成词云图
wc.generate(text)       # 根据文本生成词云图
wc.generate_from_text(text)    # 根据文本生成词云图
wc.process_text(text)      # 将长文本拆分成单词,消除词尾。
wc.recolor([random_state, color_func, colormap])   # 对现有的字体颜色进行重新染色,这会比重新生成整个词云快很多。

 

三、词云图存储展示方法

存储

wc.to_file(filename)   导出到图像文件,filename 为输出路径
通过 matplotlib 库用plt.imshow(con) 读取生成的词云图,然后 plt.savefig(filename)。

 
展示

可以在导出文件后,根据路径找到后直接打开,或者将保存的图像导入PIL库,用PIL.Image.open(图片路径)打开。

使用 plt.show(con)。  ## con为使用词云图生成方法生成的词云图。

 

posted @ 2020-04-28 22:27  赏尔  阅读(1236)  评论(0编辑  收藏  举报