选择当前系统环境适用的文件,如:wordcloud‑1.8.1‑cp37‑cp37m‑win_amd64.whl(python 3.7 windows 64位)。
点击文件,浏览器会自动下载。下载完成后,将文件移动到D:\software\Python文件夹下(路径最好不要包含中文)
使用pip install命令安装所下载的whl文件。
pip install D:\software\Python\wordcloud-1.8.1-cp37-cp37m-win_amd64.whl
产生词云的步骤:
- 1.读取词云的文本文件;
- 2.WordCloud()不含参数表示使用默认环境,WordCloud().generate()方法创建文本文件的词云对象;
- 3.使用to_image()方法创建词云图像文件;
- 4.show()显示词云图像文件
# author:mlnt
# createdate:2022/8/21
from wordcloud import WordCloud # 导入WordCloud模块
"""
产生词云的步骤:
1.读取词云的文本文件;
2.WordCloud()不含参数表示使用默认环境,WordCloud().generate()方法创建文本文件的词云对象;
3.使用to_image()方法创建词云图像文件;
4.show()显示词云图像文件
"""
with open(file='test1.txt') as f: # 打开文本文件
txt = f.read() # 读取文本
wd = WordCloud().generate(txt) # 由txt文字产生WordCloud对象
imageCloud = wd.to_image() # 创建词云图像文件
imageCloud.show() # 显示词云图像文件
imageCloud.save('test1.png') # 保存词云图像文件
test1.txt
Java PHP C C++ C# Python Ruby Go
Chrome Firefox
MySQL Oracle SQL Sever
Windows Linux Mac
Android IOS
Mazda Nissan Opel Peugeot Porsche Renault Rover Skoda Subaru
Toyota Volvo Volkswagen Suzuki
效果:
需要安装中文分词函数库模块jieba:
pip install jieba
# author:mlnt
# createdate:2022/8/21
# 需要安装中文分词函数库模块jieba
# pip install jieba
from wordcloud import WordCloud # 导入WordCloud模块
import jieba # 导入jieba模块
# 设置编码
with open(file='test2.txt', encoding='utf-8') as f:
txt = f.read() # 读取文件
# 使用cut()方法将读取的文件进行分词
cut_txt = ' '.join(jieba.cut(txt)) # 产生分词的字符串
# 创建词云对象
wd = WordCloud(
font_path=r'C:\Windows\Fonts\STXINGKA.TTF', # 字体文件路径 华文行楷
background_color='silver', # 设置词云背景颜色
width=600, # 宽度
height=400, # 高度
).generate(cut_txt)
imageCloud = wd.to_image() # 创建词云图像文件
imageCloud.show() # 显示词云图像文件
imageCloud.save('test2.png') # 保存词云图像文件
test2.txt:
Java PHP C C++ C# Python Ruby Go
Chrome Firefox
MySQL Oracle SQL Sever
Windows Linux Mac
Android IOS
Mazda Nissan Opel Peugeot Porsche Renault Rover Skoda Subaru
Toyota Volvo Volkswagen Suzuki
夏 商 周 春秋 战国 秦
西游记 红楼梦 三国演义 水浒传
百度 腾讯 阿里巴巴
京东 淘宝 拼多多
效果:
# author:mlnt
# createdate:2022/8/21
from matplotlib import pyplot as plt
from wordcloud import WordCloud # 导入WordCloud模块
import jieba # 导入jieba模块
# 设置编码
with open(file='test2.txt', encoding='utf-8') as f:
txt = f.read() # 读取文件
# 使用cut()方法将读取的文件进行分词
cut_txt = ' '.join(jieba.cut(txt)) # 产生分词的字符串
# 创建词云对象
wd = WordCloud(
font_path=r'C:\Windows\Fonts\STXINGKA.TTF', # 字体文件路径 华文行楷
background_color='silver', # 设置词云背景颜色
width=600, # 宽度
height=400, # 高度
).generate(cut_txt)
# 使用matplotlib模块的imshow()方法创建图像文件
plt.imshow(wd)
plt.axis('off') # 隐藏轴线
# 保存图像文件
plt.savefig('词云图像.jpg', bbox_inches='tight')
plt.show() # 显示词云图像文件
# author:mlnt
# createdate:2022/8/21
from matplotlib import pyplot as plt
from wordcloud import WordCloud # 导入WordCloud模块
import jieba # 导入jieba模块
# 设置编码
with open(file='陋室铭.txt', encoding='utf-8') as f:
txt = f.read() # 读取文件
# 使用cut()方法将读取的文件进行分词
cut_txt = ' '.join(jieba.cut(txt)) # 产生分词的字符串
# 创建词云对象
wd = WordCloud(
font_path=r'C:\Windows\Fonts\STXINGKA.TTF', # 字体文件路径 华文行楷
background_color='silver', # 设置词云背景颜色
width=600, # 宽度
height=400, # 高度
).generate(cut_txt)
# 使用matplotlib模块的imshow()方法创建图像文件
plt.imshow(wd)
plt.axis('off') # 隐藏轴线
# 保存图像文件
plt.savefig('陋室铭分割.jpg', bbox_inches='tight')
plt.show() # 显示词云图像文件
图片须无背景色。
import numpy as np
from PIL import Image
from matplotlib import pyplot as plt
from wordcloud import WordCloud # 导入WordCloud模块
# 设置编码
with open(file='huge.txt', encoding='utf-8') as f:
txt = f.read() # 读取文件
def transform_mask(imagename):
mask = np.array(Image.open(imagename))
mask = mask[:, :, 0] # transform 3d image to 2d for easier visualization
def transform_format(val):
if val.any() == 0:
return 255
else:
return val
# Transform your mask into a new one that will work with the function
transformed_mask = np.ndarray((mask.shape[0], mask.shape[1]), np.int32)
for i in range(len(mask)):
transformed_mask[i] = list(map(transform_format, mask[i]))
return transformed_mask
# bgImage = np.array(Image.open('huge1.png')) # 背景图
# 创建词云对象
wd = WordCloud(
font_path=r'C:\Windows\Fonts\Muyao.TTF', # 字体文件路径
background_color='white', # 设置词云背景颜色
mask=transform_mask('huge.png') # mask设置
).generate(txt)
# 使用matplotlib模块的imshow()方法创建图像文件
plt.imshow(wd)
plt.axis('off') # 隐藏轴线
# 保存图像文件
plt.savefig('含图片背景的词云.jpg', bbox_inches='tight')
plt.show() # 显示词云图像文件
测试文本:
仙剑奇侠传 琅琊榜 神话 伪装者
大好时光 天外飞仙 猎场
忘记时间 一吻天荒 六月的雨
天亮以后 风起时 蓝光 逍遥叹
南方车站的聚会 仙剑奇侠传三
轩辕剑之天之痕 香格里拉
风中奇缘 生活启示录 旋风十一人
李逍遥 宇文拓 景天
董永 易小川 扎西平措 穆奇
测试图片:
效果: