python词云图生成简单实用

首先:导入主要模块

jieba、matplotlib、wordcloud、numpy、PIL

import jieba
from matplotlib import pyplot as plt
from wordcloud import WordCloud
from PIL import Image
from matplotlib import colors
import numpy as np

设置词云的字体

font = r'C:\Windows\Fonts\simhei.TTF'

 这里用电脑自带的就可以,在这个文件路径里找自己喜欢的格式,点文件属性查看文件名

python词云图生成简单实用_第1张图片

设置文件路径

path = r'D:\Python\python_data\venv\学习\test'

在哪写代码,就把文件路径写哪(这里可以更改为自己的路径)

使用jieba模块分词

text = (open(path+r'\data.txt','r',encoding='utf-8')).read()#获得要分词的数据

def tcg(te):    #分词函数,如何分取决于txt文件里文字格式
    cut = jieba.cut(te) 
    string = '\n'.join(cut) #比如我的txt里面是一行一个词 就用换行分词
    return string

string=tcg(text)#调用

 python词云图生成简单实用_第2张图片

自定义设置词云字体颜色

 颜色参数自己随意设置(这里我写了一个蓝色系数组),colormap为后面词云的参数

color_list = ['#378FE7','#686FB6','#4926F8','#57A4C7','#48D6CC',
                        '#2C31F2','#4325F9','#277BF7','#2557F9']
colormap=colors.ListedColormap(color_list)#调用matplotlib的colors方法

图片最好以白色为底,图里面是什么形状,词云就是什么形状

python词云图生成简单实用_第3张图片

图是我用word写的艺术字,再用截图工具截的

img = Image.open(path+r'\henu.jpg') #打开图片
img_array = np.array(img) #把图片变为数组格式
stopword=['']    #设置停止词,即不想出现的内容

设置词云参数

wc = WordCloud(
    background_color='white',#背景颜色
    width=1000,              #词云长宽大小
    height=800,
    colormap=colormap,       #词云字体颜色
    mask=img_array,          #设置背景图片
    font_path=font,          #字体格式文件路径
    stopwords=stopword       #不想出现的内容
)

绘图并导出词云

wc.generate_from_text(string)#绘图

plt.axis('off')#使用matplotlib可视化工具,设置不显示坐标轴

plt.show()     #显示图片

wc.to_file(path+r'\test.jpg')  #保存到当前文件

效果

python词云图生成简单实用_第4张图片

 

你可能感兴趣的:(python,机器学习,numpy,matplotlib)