【基础】学习笔记59-Python3 matplotlib绘图-词云图

词云图

代码1:

# 词云图

# 最简单的

from wordcloud import WordCloud

import jieba

import matplotlib.pyplot as plt

# 导入文本数据并进行简单的文本处理

# 去掉换行符和空格

datafile = '/Users/cherish/Documents/学习3_Python/_Practice/PracticalProject_basic/basic projects/_01_Drawing/matplotlib/file/以梦为马.txt''

#datafile = 'D:\\python\\__self projects__\\basic projects\\_01_Drawing\\matplotlib\\file\\以梦为马.txt'

text = open(datafile).read()

text = text.replace('\n', '').replace(' ', '')

text_cut = jieba.lcut(text)  # 分词,返回结果为词的列表

text_cut = ' '.join(text_cut)  # 将分好的词用某个符号分割开连接成字符串

# 导入停词

# stop_words = open(

#    'D:\\python\\__self projects__\\basic projects\\_01_Drawing\\matplotlib\\file\\stop_words.txt').read().split('\n')

stop_words = open('/Users/cherish/Documents/学习3_Python/_Practice/PracticalProject_basic/basic projects/_01_Drawing/matplotlib/file/stop_words.txt').read().split('\n')'

# 使用wordcloud生成词云

word_cloud = WordCloud(

    #font_path='C:\\Windows\\Fonts\\simkai.ttf',  # 设置词云字体

    font_path='C:\\Windows\\Fonts\\simkai.ttf',

    background_color='white',  # 词云图的背景颜色

    stopwords=stop_words)  # 去掉的停词

word_cloud.generate(text_cut)

# 运用matplotlib展现结果

plt.subplots(figsize=(12, 8))

plt.imshow(word_cloud)

plt.axis('off')

plt.show()

代码2:

# 词云图:以福字 带特定形状的词云

from PIL import Image

import matplotlib.pyplot as plt

from wordcloud import WordCloud

import jieba

import numpy as np

# 导入文本数据并进行文本处理

text = open(

    'D:\\python\\__self projects__\\basic projects\\_01_Drawing\\matplotlib\\file\\此生未完成.txt').read()

text = text.replace('\n', '').replace(' ', '')

text_cut = jieba.lcut(text)

text_cut = ' '.join(text_cut)

# 导入停词

stop_words = open(

    'D:\\python\\__self projects__\\basic projects\\_01_Drawing\\matplotlib\\file\\stop_words.txt').read().split('\n')

# 导入背景图片

background = Image.open(

    'D:\\python\\__self projects__\\basic projects\\_01_Drawing\\matplotlib\\file\\黑猫.png'

)

graph = np.array(background)

# 生成词云

word_cloud = WordCloud(

    font_path='C:\\Windows\\Fonts\\simkai.ttf',  # 词库路径

    background_color='white',

    max_words=1000,  # 最大允许1000个词去组成这个词云图

    max_font_size=100,  # 词语最大尺寸

    width=1500,  # 宽度

    height=1500,  # 高度

    mask=graph,  # 指定词云的形状

    stopwords=stop_words)

word_cloud.generate(text_cut)

plt.subplots(figsize=(12, 8))

plt.imshow(word_cloud)

plt.axis('off')

plt.show()

代码3:

# 词云图:wordcloud,增加从图片获取颜色色系

import matplotlib.pyplot as plt

import jieba

import numpy as np

from wordcloud import WordCloud

from wordcloud import ImageColorGenerator  # 从图片中提取调色方案

from PIL import Image

text_file = 'D:\\python\\__self projects__\\basic projects\\_01_Drawing\\matplotlib\\file\\Jane Eyre.txt'  # 文本路径

stopword_file = 'D:\\python\\__self projects__\\basic projects\\_01_Drawing\\matplotlib\\file\\stop_words.txt'  # 停词路径

img_file = 'D:\\python\\__self projects__\\basic projects\\_01_Drawing\\matplotlib\\file\\美国地图_星条旗色.png'  # 图片路径

font_file = 'D:\\python\\__self projects__\\basic projects\\_01_Drawing\\matplotlib\\file\\msyhl.ttc'  # 字体路径

def get_text(text_file):  # 文本处理

    text = open(text_file).read()

    text = text.replace('\n', '').replace(' ', '')

    words = jieba.lcut(text)

    words = ' '.join(words)

    return words

def get_stopw(stopword_file):  # 停词处理

    stopword = open(stopword_file).read().split('\n')

    return stopword

def get_img(img_file):  # 背景图片处理

    global usa_mask

    background = Image.open(img_file)

    usa_mask = ImageColorGenerator(np.array(background))

    return np.array(background)

def make_wordcloud(words, stopwds, graph, font_file):  # 生成云图

    word_cloud = WordCloud(

        # font_path=font_file,  # 字体路径,中文需指定

        mask=graph,  # 背景图

        background_color='white',  # 背景颜色

        height=400,

        width=800,

        scale=20,  # 长宽拉伸比例为20

        # random_state=50,  # 随机角度

        max_words=1000,  # 最多1000个

        max_font_size=80,  # 最大字为100

        # min_font_size=4,

        relative_scaling=0.3,  # 设置字体大小与词频的关联程度为0.3

        prefer_horizontal=0.2,  # 调整水平显示倾向程度

        # contour_width=1,

        # contour_color='steelblue',

        # stopwords=stopwds  # 去除停词

    )

    return word_cloud.generate(words)

    # return word_cloud.generate_from_text(words)

def show(wordcloud):

    plt.figure(figsize=(8, 4))

    plt.imshow(wordcloud.recolor(color_func=usa_mask), alpha=1)

    plt.axis('off')

    plt.show()

def save_it(wordcloud, name):  # 保存

    filename = '{}.png'.format(name)

    plt.savefig(filename, dpi=600, bbox_inches='tight', quality=95)

if __name__ == "__main__":

    words = get_text(text_file)

    stopwds = get_stopw(stopword_file)

    graph = get_img(img_file)

    wordcloud = make_wordcloud(words, stopwds, graph, font_file)

    show(wordcloud)

    save_it(wordcloud, '美国国旗')

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容