zoukankan      html  css  js  c++  java
  • 词云图制作

    【写在前面】

    先放效果图

    result.jpg

    在学习Python的过程中,发现制作一个词云图看以来既有趣又实用,故作此博客来记录一下制作词云图的过程。希望以后做PPT的时候能用上(狗头

    一、准备工作

    1.1 在cmd中下载以下第三方库

    pip install wordcloud  # wordcloud是优秀的词云展示第三方库
    pip install numpy  # 用来处理图片,将图片转化成numpy数组
    pip install jieba  # jieba库是重要的第三方中文分词函数库
    pip install matplotlib  # 用matplotlib来绘制词云图
    pip install Pillow  # PIL是python的图像处理库,能处理几乎所有的图片格式
    

    1.2 在这个实例中用到的图片 1.jpg ,用来描绘词云图的形状。此外还要准备一个txt文件,词云图的分词从此txt中提取。

    1.jpg

    sanguo_txt.rar

    二、代码

    from wordcloud import WordCloud,STOPWORDS
    from PIL import Image
    import jieba
    import numpy as np
    import matplotlib.pyplot as plt
    
    def Draw_wordcloud(text_fromFile):
        list_aftJieba = jieba.cut(text_fromFile)
        ls_spaceSplit = " ".join(list_aftJieba)
        sw = set(STOPWORDS)
        sw.add("ok")
    
        mask = np.array(Image.open(r'F:1.jpg'))  # 选择图片
    
        my_wordcloud = WordCloud(
            font_path = r'F:SourceHanSerifCN-Medium.otf',  # 设置字体格式
            background_color = "white",
            mask = mask,
            max_words = 200,
            max_font_size = 100,
            stopwords = sw,
            scale = 8
            ).generate(ls_spaceSplit)
      
        "显示词云图"
        plt.imshow(my_wordcloud)
        plt.axis("off")
        plt.show()
    
        "保存词云图"
        my_wordcloud.to_file('result.jpg')
    
    if __name__ == "__main__":
        with open("sanguo.txt","rb") as f:
            text_fromFile = f.read()
        Draw_wordcloud(text_fromFile)
    

    三、代码分析

    jieba.cut():对txt文章进行分词,返回generator,要将它转化为字符串。

    STOPWORDS集合:停用词可以过滤掉不想要的单词,这里直接把STOPWORDS作为wordcloud的参数来使用,另外还可以自己写代码来过滤停用词

    numpy.array():将打开的照片转化为数组,而后将它传入到wordcloud的mask参数

    wordcloud各参数的意义:官方文档:wordcloud.WordCloud

    generate():将字符串传入此方法即可生成词云图

    imshow()、axis("off")、show():显示词云图,但不显示坐标

    to_file():保存词云图

    参考链接amueller/word_cloud(github项目)

  • 相关阅读:
    解决加密PDF文档无法复制文字的问题
    Linux创建用户时让每个用户家目录中自带说明文档
    Linux基础命令cp之拷贝隐藏文件
    Linux基础命令之getent
    Linux用户和组管理命令-用户创建useradd
    Linux用户和组管理命令-用户删除userdel
    Linux用户和组管理命令-用户属性修改usermod
    Linux用户和组管理命令-切换用户su
    Linux-京西百花山
    tee命令
  • 原文地址:https://www.cnblogs.com/xyz-8108923246/p/13845929.html
Copyright © 2011-2022 走看看