专属定制:用Python简洁的二十行代码做一个专属你的动漫词云图

今天教大家如何用Python制作简单的词云,文中有非常详细的介绍及代码示例,对于正在学习Python的小伙伴们也能看的懂,需要的小伙伴可以参考下。

一、准备

词云制作所必需的三个包:

  1. 安装:pip install matplotlib
  2. 安装:pip install jieba
  3. 安装:pip install wordcloud
    (可能还需要其他包:pip install numpy等等,可以自行添加)

二、简单词云

效果展示:

专属定制:用Python简洁的二十行代码做一个专属你的动漫词云图_第1张图片

参考代码:

import matplotlib.pyplot as plt  # 在任何绘图之前,我们需要一个figure对象,可以理解成我们需要一张画板才能开始绘图
import jieba  # jieba库是中文分词的第三方库(中文文本需要通过分词获得单个的词语)
from wordcloud import WordCloud  # 导入wordcloud库
 
text = open(r'test.txt', "r").read()  # 读入txt文本数据,在字符串前面加上字符r或R之后表示原始字符串,字符串中的任意字符都不再进行转义,后一个r表示“只读”
cut_text = jieba.cut(text)  # 结巴中文分词,生成字符串,默认精确模式,如果不通过分词,无法直接生成正确的中文词云
result = " ".join(cut_text)  # 必须给个符号分隔开分词结果来形成字符串,否则不能绘制词云
# join函数的用法:'sep'.join(seq)参数说明:sep:分隔符。可以为空;seq:要连接的元素序列、字符串、元组、字典;即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
 
# 生成词云图,这里需要注意的是WordCloud默认不支持中文,所以这里需已下载好的中文字库
# 无自定义背景图:需要指定生成词云图的像素大小,默认背景颜色为黑色,统一文字颜色:mode='RGBA'和colormap='pink'
wc = WordCloud(
    # 设置字体,不指定就会出现乱码
    background_color='white',  # 设置背景色,默认为黑色
    width=500,  # 设置背景宽
    height=350,  # 设置背景高
    max_font_size=50,  # 最大字体
    min_font_size=10,  # 最小字体
    mode='RGBA'  # 当参数为“RGBA”并且background_color不为空时,背景为透明
)
wc.generate(result)  # 根据分词后的文本产生词云
wc.to_file(r"wordcloud.png")  # 保存绘制好的词云图
plt.imshow(wc)  # 以图片的形式显示词云
plt.axis("off")  # 关闭图像坐标系,即不显示坐标系
plt.show()  # plt.imshow()函数负责对图像进行处理,并显示其格式,但是不能显示。其后必须有plt.show()才能显示

三、自定义动漫词云

1.皮卡丘模板:

专属定制:用Python简洁的二十行代码做一个专属你的动漫词云图_第2张图片

参考代码:

import wordcloud
import numpy as np
from PIL import Image # Image模块是在Python PIL图像处理常用的模块
import jieba
 
pic = Image.open("pkq.jpg")  # 打开图片路径,形成轮廓
shape = np.array(pic)  # 图像轮廓转换为数组
wc = wordcloud.WordCloud(mask=shape, font_path="simkai.ttf", background_color="white",
                         max_font_size=100)  # mask为图片背景,font_path为字体,若不设置可能乱码
 
text = open(r'poem.txt', "r", encoding='UTF-8').read()  # 对中文应该设置编码方式为utf—8
cut_text = jieba.cut(text)
result = " ".join(cut_text)
wc.generate(result)
wc.to_file("cloud.jpg")

皮卡丘词云效果图:

专属定制:用Python简洁的二十行代码做一个专属你的动漫词云图_第3张图片

2.小仙女模板:

专属定制:用Python简洁的二十行代码做一个专属你的动漫词云图_第4张图片

参考代码:

import matplotlib.pyplot as plt                          #数学绘图库
from PIL import Image
import numpy as np                                      #科学数值计算包,可用来存储和处理大型矩阵
import jieba                                            #分词库
from wordcloud import WordCloud, ImageColorGenerator   #词云库
 
#1、读入txt文本数据
text = open(r'D:\Python\test\wordcloud\data\english.txt',"r").read()
 
# 2、结巴分词:cut_all参数可选, True为全模式,False为精确模式,默认精确模式
cut_text= jieba.cut(text,cut_all=False)
result= "/".join(cut_text)#必须给个符号分隔开分词结果,否则不能绘制词云
 
#3、初始化自定义背景图片
image = Image.open(r'D:\Python\test\wordcloud\data\backgroud\image1.png')
graph = np.array(image)
 
#4、产生词云图
#有自定义背景图:生成词云图由自定义背景图像素大小决定
wc = WordCloud(font_path=r"D:\Python\test\wordcloud\data\ttf\yahei.ttf",background_color='white',max_font_size=50,mask=graph)
wc.generate(result)
 
#5、绘制文字的颜色以背景图颜色为参考
image_color = ImageColorGenerator(graph)#从背景图片生成颜色值
wc.recolor(color_func=image_color)
wc.to_file(r"D:\Python\test\wordcloud\output\wordcloud.png") #按照背景图大小保存绘制好的词云图,比下面程序显示更清晰
 
# 6、显示图片
plt.figure("词云图")   #指定所绘图名称
plt.imshow(wc)         # 以图片的形式显示词云
plt.axis("off")       # 关闭图像坐标系
plt.show()

小仙女词云效果图:

专属定制:用Python简洁的二十行代码做一个专属你的动漫词云图_第5张图片

专属定制:用Python简洁的二十行代码做一个专属你的动漫词云图_第6张图片

点击领取.福利多多

①行业咨询、技术交流、大佬在线专业解答有
②Python开发环境安装教程有
③Python400集自学视频有
④软件开发常用词汇有
⑤Python学习路线图有
⑥3000多本Python电子书有 如果你用得到的话可以直接拿走,在我的QQ技术交流群里群号:
675240729(纯技术交流和资源共享,广告勿入)以自助拿走

文章到这里结束了,感谢观看,更多有关Python精彩内容可以关注小编看小编主页,或点击上方领取福利。

你可能感兴趣的:(python,程序员,数据分析,爬虫,人工智能)