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填入字体所在的路径,若不写则无法识别,如图:
路径不要携带中文字符,字体文件一般为.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') #保存图片
最终效果图: