最近在写工作汇报PPT时,遇到了分析高频的词语的展示问题。
如何才能很好地展示各种词语之间的关系呢?
经过研究发现,采用词云可以很好地体现词语之间的关系,
同时,让我们的PPT也美观美丽。
使用Python可以很容易实现美丽的词云,其他不多说,直接上源代码。
没有的Python包可以通过下面命令安装。
pip install xx
完整源代码如下:
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
from stylecloud import gen_stylecloud
def text_cloud():
"""中文文本词云"""
txt = '在青春之书里,我们同在一行字之间。 被窝是青春的坟墓。 关于少年时代,冷暖自知,最朴素的生活,与最遥远的梦想。 这一切将在被回忆肆意篡改'
# 准确分词
words = jieba.lcut(txt)
# 空格拼接
newtxt = ''.join(words)
wordcloud = WordCloud(background_color='white', # 设置背景颜色为白色
font_path="msyh.ttc").generate(newtxt)
wordcloud.to_file('text_cloud.png')
print('绘图text_cloud成功!')
def text_cloud_english():
"""英文文本词云"""
# 文本数据
text = 'When I say I know you,I mean I knew you yesterday. I do not know you actually now'
# 准备禁用词,需要为set类型
stopwords = set(['I', 'do'])
# 设置参数,创建WordCloud对象
wc = WordCloud(
width=200, # 设置宽为400px
height=150, # 设置高为300px
background_color='white', # 设置背景颜色为白色
stopwords=stopwords, # 设置禁用词,在生成的词云中不会出现set集合中的词
max_font_size=100, # 设置最大的字体大小,所有词都不会超过100px
min_font_size=10, # 设置最小的字体大小,所有词都不会超过10px
max_words=20, # 设置最大的单词个数
scale=2 # 扩大两倍
)
# 根据文本数据生成词云
wc.generate(text)
# 保存词云文件
wc.to_file('text_eng.jpg')
print('绘图img_eng成功!')
def img_cloud():
"""图片轮廓词云"""
# 读取图片,换成自己想要的图片
im = np.array(Image.open("bg.png"))
txt = '满纸荒唐言,一把辛酸泪!都云作者痴,谁解其中味?人生本是孤寂,热闹都是强装。看叶子绿又黄,心头一点凉。'
wordcloud = WordCloud(background_color="white",
font_path="msyh.ttc",
width=800,
height=600,
max_words=200,
max_font_size=80,
mask=im,
contour_width=3,
contour_color='steelblue'
).generate(txt)
wordcloud.to_file('img_img.png')
print('绘图img_img成功!')
def icon_cloud():
"""图标轮廓词云"""
# 读取文件
f = open('test.txt', 'r', encoding='utf-8')
txt = f.read()
f.close()
# 切割分词
wordlist = jieba.cut_for_search(''.join(txt))
result = ' '.join(wordlist)
gen_stylecloud(text=result,
icon_name='fas fa-plane', # 更多查看网址https://fontawesome.com/
# 调色板(通过 palettable 实现)。[default: cartocolors.qualitative.Bold_6]
palette='cartocolors.qualitative.Bold_5',
font_path='msyh.ttc',
background_color='white',
output_name='img_icon.png',
custom_stopwords=['你', '我', '她']
)
print('绘图icon_cloud成功!')
if __name__ == '__main__':
text_cloud()
text_cloud_english()
img_cloud()
icon_cloud()
效果图如下:




你学会了吗?
喜爱的请您点下关注!我将持续提供工作中实用的工具和技术。
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END
















暂无评论内容