• 用WordCloud绘制词云


    初步认识

    wordcloud是词云绘图模块,封装了WordCloud词云类,是词云的基本载体。在新建一个词云之后,通过generate装载用以生成词云的字符串,最后用to_file把词云图保存到文件中,例如

    from wordcloud import WordCloud
    
    w = WordCloud()
    txt = "tinycool cool tiny Python WordCloud word cloud word not world"
    w.generate(txt)
    w.to_file("pywordcloud.png")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    效果如下

    在这里插入图片描述

    基本参数

    仅就这张图像来说,我们能感受到的特性大概有

    • 词云图的宽度、高度
    • 背景颜色,文字颜色
    • 字体
    • 单词长度,单词个数

    这些特性可受到下列参数调控

    参数说明备注
    font_path字体文件路径otf或ttf文件
    width词云宽度默认400
    height词云高度默认200
    min_font_size最小文字尺寸默认4
    max_font_size最大文字尺寸默认为图像高度
    relative_scaling词频对尺寸的影响默认"auto"
    font_step字体步长默认1
    max_words最大单词数默认200
    min_word_length最短单词长度默认0
    background_color背景色默认"black"
    mode颜色格式默认RGB
    colormap颜色映射
    repeat是否重复单词默认False

    下面对这些参数稍作更改,并

    # txt即本文前面所有文字,因为太多就不写了
    txt = r'''
    '''
    dct = dict(width=600, height=300,
        font_path = r"C:\Windows\Fonts\simhei.ttf",
        min_font_size = 10,
        max_font_size = 100,
        max_words = 20,
        min_word_length = 2,
        background_color = "white",
        colormap = "jet")
    
    w = WordCloud(**dct)
    w.generate(txt)
    w.to_file("pywordcloud.png")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    效果如下,由于最多只显示20个单词,而且尺寸最小是10,最大100,所以不太好看。

    在这里插入图片描述

    掩模参数

    所谓掩模,就是词云组成的图案,主要由以下参数调控。

    参数说明备注
    mask掩模数组默认None
    contour_width掩模宽度默认为0
    contour_color掩模颜色默认"black"

    掩模数组由0和1构成,词云只在掩模数组为1的位置显示。下面画一个椭圆作为掩模数组,椭圆圆周的方程为

    ( x − 300 ) 2 28 0 2 + ( y − 150 ) 2 14 0 2 = 1 \frac{(x-300)^2}{280^2}+\frac{(y-150)^2}{140^2}=1 2802(x300)2+1402(y150)2=1

    x = 300 ± 28 0 2 − ( 2 y − 300 ) 2 x = 300\pm\sqrt{280^2-(2y-300)^2} x=300±2802(2y300)2

    import numpy as np
    y, x = np.indices([300,600])
    delta = np.sqrt(280**2-(2*y-300)**2)
    mask = (x<300+delta) & (x>300-delta)
    mask = (1-mask)*254+1
    
    w = WordCloud( mask = mask, contour_width=100,
        font_path = r"C:\Windows\Fonts\simhei.ttf")
    w.generate(txt)
    w.to_file("pywordcloud.png")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    效果如下

    在这里插入图片描述

  • 相关阅读:
    AVM 环视拼接方法介绍
    Redis查找并删除key
    VSSM VMamba实现
    SaveFileDialog.OverwritePrompt
    SpringCloud源码探析(十)-Web消息推送
    VSCODE配置unity(windows)
    QT进度条 QProgressDialog基础、高级和样式表使用详解
    斐波那契数列Kotlin的N种实现方式
    罗汉果甜苷V/益生菌修饰卵清蛋白 Mogroside V/probiotics-OVA
    PHP 个人愿望众筹网站系统mysql数据库web结构apache计算机软件工程网页wamp
  • 原文地址:https://blog.csdn.net/m0_37816922/article/details/132381915