词云图-wordcloud

wordcloud参数:
font_path:字体路径
width:画布宽
height:画布高
prefer_horizontal:调整词云中字体水平和垂直
mask:掩膜,产生词云背景的区域,指定词云形状
scale:计算和绘图之间的缩放
min_font_size:指定词云最小字号(默认4号)
max_font_size:指定词云最大字号
max_words:最大单词量(默认200)
stopwords:禁用词
background_color:词云的背景颜色
font_step:指定词云中字体字号的步进间隔(默认1)

import re
import jieba #分词
from wordcloud import WordCloud
import matplotlib.pyplot as plt #数据可视化
import numpy  as np  #科学计算
from PIL import Image #图片

获取目标文本及停用词

txt = open('D:/天津.txt','r',encoding='utf-8').read()
exc={'一个','你们','如果','而且','还是','这种','好像','接入'}

方法一:先处理数据,将文本中的停用词去除

def check_filter(keywords, text):
    return re.sub("|".join(keywords), "", text)
list = check_filter(exc, txt)

中文需要先进行分词,并使用空格连接(这一步很重要)

list_center = jieba.cut(list, cut_all=False)
world_center = " ".join(list_center)

生成词云图,这里建议在WordCloud()里面使用stopwords去除停用词。font_path填入字体所在的路径,若不写则无法识别,如图:
词云图-wordcloud_第1张图片
路径不要携带中文字符,字体文件一般为.ttc或.ttf。

backgroud=np.array(Image.open("D:\code\star.jpg")) #背景图片
worldC = WordCloud(
    background_color="white",
    font_path='C:\Windows\Fonts\Microsoft YaHei UI\msyhl.ttc', #字体路径
    max_words=1000,
    max_font_size=100,
    mask=backgroud #设置词云形状
)
worldC.generate(world_center)
plt.imshow(worldC, interpolation='bilinear')#显示词云
plt.xticks([]) #去除x轴坐标
plt.yticks([])#去除y轴坐标
plt.show()
worldC.to_file('词云图.png') #保存图片

最终效果图:
词云图-wordcloud_第2张图片

你可能感兴趣的:(python,词云图,python)