大数据时代,经常能够看到这么炫酷的图片,那么这样的图片是怎么做出来的呢,下面我们详细介绍。
一、 安装wordcloud
1.下载python版本相对的wordcloud版本:
2.切换到下载地址进行安装:
pip install wordcloud-1.4.1-cp36-cp36m-win_amd64.whl
二、 使用词云进行编码
安装好wordcloud模块后,就可以进行代码编写了。
#!/usr/bin/env python
# coding:utf8
from wordcloud import WordCloud
# PIL(Python Image Library)是python平台图像处理标准库
import PIL .Image as image
import numpy as np
# 准备好的英文文件
with open('test.txt', 'r', encoding='UTF-8') as fp:
text = fp.read()
# 打印文件内容
# print(text)
# 将文本放入WordCloud容器对象中并分析
WordCloud = WordCloud().generate(text)
# 生成图片,并展示
image_result = WordCloud.to_image()
image_result.show()
最终效果如下图所示:
三、中文词云
上面介绍的是可以生成英文的相关词云,要想支持中文,需要用到另外一个模块jieba。
- 安装 jieba模块,使用pip命令直接安装
pip3 install jieba
- 开始进行代码编写
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 下面三行打印中文使用代码
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')
from wordcloud import WordCloud
# PIL(Python Image Library)是python平台图像处理标准库
import PIL .Image as image
import numpy as np
import jieba
# 定义函数对中文进行处理
def process_chinese(text):
# 进行分词
words_list = jieba.cut(text)
# 分词后再在每个词之间加上空格
result = " ".join(words_list)
return result
# 准备好的中文文件,txt的编码格式要转换为utf-8
with open('hlm1.txt',"r",encoding="utf8") as fp:
text = fp.read()
text = process_chinese(text)
# 打印文件内容
# print(text)
font = 'C:/Windows/Fonts/simkai/msyh.ttc'
# 将文本放入WordCloud容器对象中并分析
WordCloud = WordCloud(
font_path=font, # 不指定字体,中文为方块
background_color='white',#背景色
).generate(text)
# 生成图片,并展示
image_result = WordCloud.to_image()
image_result.show()
最终显示的结果如下:
- 优化制定背景显示好看的词云,代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 下面三行打印中文使用代码
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')
from wordcloud import WordCloud
# PIL(Python Image Library)是python平台图像处理标准库
import PIL .Image as image
import numpy as np
import jieba
# 定义函数对中文进行处理
def process_chinese(text):
# 进行分词
words_list = jieba.cut(text)
# 分词后再在每个词之间加上空格
result = " ".join(words_list)
return result
path_img = 'timg.jpg'
background_image = np.array(image.open(path_img))
# 准备好的英文文件
with open('hlm1.txt',"r",encoding="utf8") as fp:
text = fp.read()
text = process_chinese(text)
# 打印文件内容
# print(text)
font = 'C:/Windows/Fonts/simkai/msyh.ttc'
# 将文本放入WordCloud容器对象中并分析
WordCloud = WordCloud(
font_path=font, # 不指定字体,中文为方块
background_color='white',#背景色
mask = background_image
).generate(text)
# 生成图片,并展示
image_result = WordCloud.to_image()
image_result.show()
显示的效果如下图所示: