Python快速生成词云,并且让图片更清晰

程序:
  使用斗破苍穹前三章作为内容,用协会logo作为mask指定词云形状


ps: 词云默认是矩形的,本代码采用图片作为mask蒙版,产生异形词云图。这里用的图片是logo。

要用到的素材在下面有下载链接哦


正式开始,Show you the code:

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

STOPWORDS = set(map(str.strip, open("dict\\stopwords.txt").readlines()))  # 停用词表

txt = open('doupo2.txt', 'r', encoding='utf-8').read()
string = jieba.cut(txt)  # 先用jieba进行一次分词过滤, 可删去
words = (' '.join(string))
bg = np.array(Image.open("logo.png"))  # mask 来源,自选
img_colors = ImageColorGenerator(bg)   # 自选

wc = WordCloud(scale=8,  # 数值越大,越清晰,只要你的电脑够好。。
               font_path="cr/123.ttf",   # 使用中文时需指定中文体,否则乱码
               background_color='GhostWhite',  # 背景颜色
               mask=bg,  # mask参数可不要
               max_words=2000,  # 最大词数
               min_font_size=10, max_font_size=120,
               stopwords=STOPWORDS).generate(words)  # words参数为字符串

wc.recolor(color_func=img_colors)  # 使得文字颜色按照mask颜色显示,自选
plt.figure()
plt.imshow(wc)  # 用plt显示图片
wc.to_file('cy.png')  # 保存图片
plt.axis('off')  # 不显示坐标轴
plt.show()

词云图片(由于scale调的很高,图片很大这里没放原图):







Last modification:March 30th, 2020 at 10:32 pm
If you think my article is useful to you, please feel free to appreciate