用Python和WordCloud绘制词云(内附让字体清晰的秘笈)

  WordCloud 1.5.0

  Pillow 5.0.0

  Jieba 0.39

目标:

  绘制安徽省2018年xxxxx的词云,直观展示热点。

思路:

  先提取项目的名称,再用Jieba分词后提取词汇;过滤掉“研发”、“系列”等无意义的词;最后用WordCloud 绘制词云。

扩展:

  词云默认是矩形的,本代码采用图片作为蒙版,产生异形词云图。这里用的图片是安徽省地图。

秘笈:

  用网上的常规方法绘制的词云,字体有点模糊,秘笈在最后点明。

本文由hATEmATH原创 转载请注明出处:

正式开始,Show you the code

1 import numpy as np 2 from PIL import Image 3 import re 4 import jieba 5 from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS 6 import matplotlib.pyplot as plt 7 8 # 打开存放项目名称的txt文件 9 with open(\'content.txt\',\'r\',encoding=\'utf-8\') as f: 10 word= (f.read()) 11 f.close() 12 13 # 图片模板和字体 14 image=np.array(Image.open(\'ditu.jpg\')) 15 font=r\'C:\\Windows\\fonts\\msyh.ttf\' 16 17 # 去掉英文,保留中文 18 resultword=re.sub("[A-Za-z0-9\[\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\\'\:\;\\'\,\[\]\.\<\>\/\?\~\。\@\#\\\&\*\%]", "",word) 19 wordlist_after_jieba = jieba.cut(resultword) 20 wl_space_split = " ".join(wordlist_after_jieba) 21 22 # 设置停用词 23 sw = set(STOPWORDS) 24 sw.add("研发") 25 sw.add("系列") 26 sw.add("这里不多写了,根据自己情况添加") 27 28 # 关键一步 29 my_wordcloud = WordCloud(scale=4,font_path=font,mask=image,stopwords=sw,background_color=\'white\', 30 max_words = 100,max_font_size = 60,random_state=20).generate(wl_space_split) 31 32 #显示生成的词云 33 plt.imshow(my_wordcloud) 34 plt.axis("off") 35 plt.show() 36 37 #保存生成的图片 38 my_wordcloud.to_file(\'result.jpg\')

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzgxxp.html