造轮子之DIY按图片轮廓制作词云图|项目复盘

521 阅读2分钟

作者:看那个码农

公众号:看那个码农

1.项目简介

我们在做PPT时候,当需要直观显示大量词汇时,往往会想到用词云图呈现

如果我们手中有一份资料,想要快速,直观地从资料中了解信息内容,

image.png

词云图是最佳的首选

image.png

下面我们看看按图片轮廓制作词云图的demo复盘

2.项目配置

  • Python3.x
  • jieba库
  • numpy库
  • PIL库
  • wordcloud库
  • matplotlib库
  1. jieba库是用来提取文档中的关键词,对文本分词进行处理

  2. numpy库是用来从图片中取色,将色彩赋给对应区域的文字

  3. PIL库是用来导入Image函数,进行图像处理的一系列操作

  4. wordcloud库是用来绘制词云图

  5. matplotlib库是用来显示词云图

3.项目流程

1.导入相对应的Python库

import matplotlib.pyplot as plt
import jieba
import wordcloud
from wordcloud import ImageColorGenerator
import numpy as np
from PIL import Image

2.读取文本文件,进行文字的分词工作

text=open('look2.txt','r').read()
cut_text = jieba.cut(text)
word = ' '.join(cut_text)

3.读取图片,获取图片中对应区域的颜色

pic = np.array(Image.open('look.jpg'))
image_color = ImageColorGenerator(pic)

4.绘制词云图

wd = wordcloud.WordCloud(
    #词云图的背景图形,如果根据图片设置,则需要设置
    mask=pic,

    #词云图的字体格式
    font_path='simhei.ttf',

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

#生成词云
wd.generate(word)

#用图片中的颜色去渲染词云图中对应区域文字的颜色
plt.imshow(wd.recolor(color_func=image_color),interpolation='bilinear')

plt.axis('off')
plt.figure()
plt.imshow(pic,cmap=plt.cm.gray,interpolation='bilinear')
plt.axis('off')
plt.show()

5.词云图生成结果

image.png

4.项目总结思考

该项目是结合工作实际,利用Python开发的一个趣味demo,代码结构清晰简单,旨在帮助人们提升PPT的质量,让PPT汇报更加生动,吸引人。

当然本词云图demo还有很多有待完善的地方,如若图片背景复杂,人物轮廓不清晰,那么就会很影响词云图的生成质量,这种情况应该如何解决呢?

如果你觉得这篇内容对你有帮助的话:

1、点赞支持下吧,让更多的人也能看到这篇内容

2、关注公众号:看那个码农,我们一起学习一起进步。

本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情