python绘制词云(jieba+wordcloud+matplotlib)

    xiaoxiao2022-07-12  141

    首先安装如下的第三方库:jieba、wordcloud、matplotlib

    pip install jieba pip install wordcloud pip install matplotlib

    如果你的使用的是anaconda3,那么只需要下载jieba和wordcloud即可,matplotlib以包含在anaconda3里面

    创建一个有文本内容的文本文件(我创建的是.txt文件)

    可以创建py文件了,导入想要绘制词云的文本文件:

    #导入一个文本文件 text = open(r'E:\11.txt',encoding='gbk') mylist = list(text)

    然后进行遍历,连接,计算词频,设置词云样式:

    #对mylist进行遍历,并将其做分词切割后做成列表 word_list = [''.join(jieba.cut(sentence)) for sentence in mylist] #将word_list内的元素用空格连接起来,以便于计算词频 new_text = ''.join(word_list) #设置词云的字体和背景颜色 wordcloud = WordCloud(font_path='simhei.ttf',background_color='black').generate(new_text)

    最后附上效果图与代码:

    import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt #导入一个文本文件 text = open(r'E:\11.txt',encoding='gbk') mylist = list(text) #对mylist进行遍历,并将其做分词切割后做成列表 word_list = [''.join(jieba.cut(sentence)) for sentence in mylist] #将word_list内的元素用空格连接起来,以便于计算词频 new_text = ''.join(word_list) #设置词云的字体和背景颜色 wordcloud = WordCloud(font_path='simhei.ttf',background_color='black').generate(new_text) plt.imshow(wordcloud) plt.axis('off') plt.show()

    —————————————————————————————————————————————————

    背景轮廓词云图:(根据上面的例子改编)

    以这张图为背景: 然后代码的话在上面代码的基础上添加几行即可:

    #在最上方加上import imageio和from collections import Counter import imageio from collections import Counter ...... ...... #根据词频生成词云 con_words = [x for x in jieba.cut(new_text) if len(x) >= 2] fq = Counter(con_words).most_common() fq = dict(fq) #导入背景图片,注意路径 pac_mask = imageio.imread(r'e:\boy.png') ... ...

    效果图:

    完整代码:

    import jieba from wordcloud import WordCloud import imageio import matplotlib.pyplot as plt from collections import Counter #导入一个文本文件 content = open(r'e:\11.txt',encoding='gbk') mylist = list(content) #对mylist进行遍历,并将其做分词切割后做成列表 word_list = [''.join(jieba.cut(sentence)) for sentence in mylist] #将word_list内的元素用空格连接起来,以便于计算词频 new_text = ''.join(word_list) #根据词频生成词云 con_words = [x for x in jieba.cut(new_text) if len(x) >= 2] fq = Counter(con_words).most_common() fq = dict(fq) #导入背景图片,注意路径 pac_mask = imageio.imread(r'e:\boy.png') #设置词云的字体和背景颜色 wc = WordCloud(font_path='simhei.ttf',background_color='white',max_words=2000,mask=pac_mask).fit_words(fq) plt.imshow(wc) plt.axis('off') plt.show() #把词云图保存下来 wc.to_file('e:\\24.png')
    最新回复(0)