import wordcloud c=wordcloud.WordCloud() #构建词云对象,配置对象参数 c.generate("wordcloud by python ") #加载词云文本 c.to_file("pywordcloud.png") #输出词云文件

词云生成步骤

  • 分隔:以空格分隔单词
  • 统计:单词出现次数并过滤(1-2个字母会被滤掉)
  • 字体:根据统计配置字号
  • 布局:颜色环境尺寸
  • c=wordcloud.WordCloud(参数) 配置对象参数

    参数(像素)描述
    width(默认400px)c=wordcloud.WordCloud(width=600)
    height(默认200px)c=wordcloud.WordCloud(height=400)
    min_font_size(默认4号)c=wordcloud.WordCloud(min_font_size=10)
    max_font_size(根据高度自动调节)c=wordcloud.WordCloud(max_font_size=20)
    font_step(默认1,步长)c=wordcloud.WordCloud(font_step=2)
    font_path(默认None,字体路径)c=wordcloud.WordCloud(font_path="msyh.ttc")
    max_words(默认200,最大数量)c=wordcloud.WordCloud(max_words=20)
    stop_words(指定去除单词的列表)c=wordcloud.WordCloud(stop_words={"python"})
    background_color(默认黑色,词云背景色)c=wordcloud.WordCloud(background_color="red")

    Scale 默认值1。值越大,图像密度越大越清晰

    mask参数自定义词云形状

    #指定词云形状,默认是长方形,需要引用imread()函数
    from scipy.misc import imread
    mk=imread("pic.png")
    c=wordcloud.WordCloud(mask=mk)
    

    numpy 多维数组运算

    matplotlib 绘图与数据可视化

    pillow 图片处理

    wordcloud 词云制作

    imageio 图像输入输出

    jieba 中文分词

    snownlp 中文情感和自然语言处理

    itchat 微信好友抓取

    政府工作报告词云

    import wordcloud
    # 从外部.txt文件中读取大段文本,存入变量txt中
    f = open('政府工作报告.txt',encoding='utf-8')
    txt = f.read()
    # 构建词云对象w,设置词云图片宽、高、字体、背景颜色等参数
    w = wordcloud.WordCloud(width=1000,
                            height=700,
                            background_color='white',
                            font_path='msyh.ttc')
    # 将txt变量传入w的generate()方法,给词云输入文字
    w.generate(txt)
    # 将词云图片导出到当前文件夹
    w.to_file('Test1.png')
    

    ==wordcloud中文分词(适合中文词云)==

    # 导入词云制作库wordcloud和中文分词库jieba
    import jieba
    import wordcloud
    # 构建并配置词云对象w
    w = wordcloud.WordCloud(width=1000,
                            height=700,
                            background_color='white',
                            font_path='msyh.ttc')
    # 调用jieba的lcut()方法对原始文本进行中文分词,得到string
    txt = '由于Python语言的简洁性、易读性以及可扩展性, \
          在国外用Python做科学计算的研究机构日益增多, \
          一些知名大学已经采用Python来教授程序设计课程。 \
          例如卡耐基梅隆大学的编程基础、 \
          麻省理工学院的计算机科学及编程导论就使用Python语言讲授。'
    txtlist = jieba.lcut(txt)
    string = " ".join(txtlist)
    # 将string变量传入w的generate()方法,给词云输入文字
    w.generate(string)
    # w.generate(" ".join(jieba.lcut(txt)))  #三段代码合一简写
    # 将词云图片导出到当前文件夹
    w.to_file('Teste2.png')
    
    自定义绘制指定形状的词云
    import jieba
    import wordcloud
    from scipy.misc import imread
    mask=imread("图片形状.png") #导入自定义形状图片赋给mask
    # 从外部.txt文件中读取大段文本,存入变量txt中
    f = open('政府工作报告.txt',encoding='utf-8')
    txt = f.read() #阅读提取
    f.close()   #关闭
    # 构建词云对象w,设置词云图片宽、高、字体、背景颜色等参数
    w = wordcloud.WordCloud(width=1000,
                            height=700,
                            background_color='white',mask=mask,
                            font_path='msyh.ttc')
    # 将txt变量传入w的generate()方法,给词云输入文字
    w.generate(" ".join(jieba.lcut(txt)))
    # 将词云图片导出到当前文件夹
    w.to_file('Test1.png')
    

    ==勾勒词云轮廓==

    # 导入词云制作库wordcloud
    import wordcloud
    # 将外部文件包含的文本保存在string变量中
    string = open('hamlet.txt').read()
    # 导入imageio库中的imread函数,并用这个函数读取本地图片,作为词云形状图片
    import imageio
    mk = imageio.imread("ren.png")
    # 构建词云对象w,注意增加参数contour_width和contour_color设置轮廓宽度和颜色
    w = wordcloud.WordCloud(background_color="white",
                            mask=mk,
                            contour_width=1,
                            contour_color='steelblue'
    # # 将string变量传入w的generate()方法,给词云输入文字
    w.generate(string)
    # 将词云图片导出到当前文件夹
    w.to_file('p2.png')
    

    ==按模板自身颜色绘制词云==

    # 导入绘图库matplotlib和词云制作库wordcloud
    import matplotlib.pyplot as plt
    from wordcloud import WordCloud,ImageColorGenerator
    # 将外部文件包含的文本保存在text变量中
    text = open('alice.txt').read()
    # 导入imageio库中的imread函数,并用这个函数读取本地图片queen2.jfif,作为词云形状图片
    import imageio
    mk = imageio.imread("alice.png")
    # 构建词云对象w
    wc = WordCloud(background_color="white",
                   mask=mk,)
    # 将text字符串变量传入w的generate()方法,给词云输入文字
    wc.generate(text)
    # 调用wordcloud库中的ImageColorGenerator()函数,提取模板图片各部分的颜色
    image_colors = ImageColorGenerator(mk)
    # 显示原生词云图、按模板图片颜色的词云图和模板图片,按左、中、右显示
    fig, axes = plt.subplots(1, 3)
    # 最左边的图片显示原生词云图
    axes[0].imshow(wc)
    # 中间的图片显示按模板图片颜色生成的词云图,采用双线性插值的方法显示颜色
    axes[1].imshow(wc.recolor(color_func=image_colors), interpolation="bilinear")
    # 右边的图片显示模板图片
    axes[2].imshow(mk, cmap=plt.cm.gray)
    for ax in axes:
        ax.set_axis_off()
    plt.show()
    # 给词云对象按模板图片的颜色重新上色
    wc_color = wc.recolor(color_func=image_colors)
    # 将词云图片导出到当前文件夹
    wc_color.to_file('out-alice.png')
    

    在这里插入图片描述

    分类:
    阅读
    标签: