python生成词云笔记

主要是通过两种方式显示词云,一种是常规方式,一种是以图像背景显示,

如下例子生成十九大报告云:

'''
词云测试
'''

#coding='utf-8'
from wordcloud import WordCloud,ImageColorGenerator
import matplotlib.pyplot as plt
import jieba
from PIL import Image
import numpy as np

# 显示效果1:常规显示
def wordcolud_show1():
    path = 'shijiuda.txt'  # D://data/shijiuda.txt
    #f = open(path, 'r', encoding='utf-8').read()
    f = open(path).read()
    #结巴分词,生成字符串,wordcloud无法直接生成正确的中文词云
    text = " ".join(jieba.cut(f))  #jieba分词,默认精确模式,对分词结果以空格分开
    #print(text)
    # 生成词云
    wordcloud = WordCloud(
        #设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,
        font_path="C:\Windows\Fonts\simfang.ttf",
        #设置背景
        background_color="white",
        #设置宽高
        width=1000,
        height=880).generate(text)

    #plt.imshow函数负责对图像进行处理,并显示其格式,而plt.show()则是将plt.imshow()处理后的函数显示出来。
    plt.imshow(wordcloud, interpolation="bilinear")  #第二个参数表示插值运算为双线性插值
    plt.axis("off")
    plt.show()


#显示效果2 给词云加上自己的背景图片
def wordcolud_show2():
    path = 'shijiuda.txt'
    path_img = 'map.jpg'
    # 打开txt文件
    f = open(path).read()
    # 结巴分词
    text = " ".join(jieba.cut(f))  #jieba分词,默认精确模式,对分词结果以空格分开
    #print(text)
    # 打开背景图片,并矩阵化
    background_image = np.array(Image.open(path_img))
    # 生成词云
    wordcloud = WordCloud(
        font_path="C:\Windows\Fonts\simfang.ttf",
        background_color="white",
        # # mask参数=图片背景,有mask后再设定宽高是无效的,因此不用设了
        mask=background_image).generate(text)
    # 生成颜色值
    image_colors = ImageColorGenerator(background_image)
    # 显示图片
    plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation="bilinear")
    plt.axis("off")
    plt.show()



if __name__ == "__main__":
    #wordcolud_show1()
    wordcolud_show2()

第一种方法结果如下图:

python生成词云笔记

第二种方法结果如下图:

python生成词云笔记

其中背景地图为:

python生成词云笔记

上一篇:python模块之wordcloud


下一篇:使用Python统计文件中词频,并且生成词云