第一:先准备生成词云要用户的文本以及图片
我这边是自己做了一个“洛神赋”三个字的图片,
以及从网上拷贝了《洛神赋》的正文
第二:需要安装的第三方库
Pillow、wordcloud、jieba、numpy
具体代码如下:
from PIL import Image
from wordcloud import WordCloud
import jieba
import numpy as np
#1:打开词云文本
txt = open("D:\\0000_2018_python_study\\1_programma\\source\\txt.txt","rb").read()
#2:用jieba进行分词
txtout = "".join( jieba.cut(txt,cut_all=False) )
#3:读取词云图片
mask_pic = Image.open("D:\\0000_2018_python_study\\1_programma\\source\\pic.png")
mask_pic_array = np.array(mask_pic)#将词云图片转换为数组
#4:设置词云的属性
font = "C:\\Windows\\Fonts\\STXINGKA.TTF"#词云的中文字体所在路径
wc = WordCloud(font_path = font,
background_color="white",
mask = mask_pic_array,
contour_width=5,
contour_color="lightblue",
)
#5:生成词云
wc.generate(txtout)
#6:存储词云
wc.to_file("D:\\0000_2018_python_study\\1_programma\\source\\cy.png")
最后的效果是这样的(哈哈,丑哭)
备注:
需要在wordcloud中设置你使用到的中文字体,
也就是wordcloud的font_path属性不要漏掉,否则中文会产生乱码
font = "C:\\Windows\\Fonts\\STXINGKA.TTF"#词云的中文字体所在路径
wc = WordCloud(font_path = font,#这里要设置,否则中文会乱码
background_color="white",
mask = mask_pic_array,
contour_width=5,
contour_color="lightblue",
)