zoukankan      html  css  js  c++  java
  • 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为使用词云图生成方法生成的词云图。

     

  • 相关阅读:
    CentOS 6.5 安装 VNC Server
    vs2008出错
    MySQL 尽量避免使用 TIMESTAMP
    excel中生成32位随机id
    库存扣减和锁
    精通 MySQL 索引
    Java代码性能优化
    RocketMQ 消息丢失场景分析及如何解决
    Java 8 的内存结构
    Spring Boot + MyBatis + MySQL 实现读写分离
  • 原文地址:https://www.cnblogs.com/shanger/p/12996330.html
Copyright © 2011-2022 走看看