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


Posted in Python onJanuary 08, 2019

环境及模块:

  • Win7 64位
  • Python 3.6.4
  • WordCloud 1.5.0
  • Pillow 5.0.0
  • Jieba 0.39

目标:

绘制安徽省2018年某些科技项目的词云,直观展示热点。

思路:

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

扩展:

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

秘笈:

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

正式开始,Show you the code:

import numpy as np
from PIL import Image
import re
import jieba
from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS
import matplotlib.pyplot as plt
# http://www.cnblogs.com/hatemath/
# 打开存放项目名称的txt文件
with open('content.txt','r',encoding='utf-8') as f:
  word= (f.read())
  f.close()

# 图片模板和字体
image=np.array(Image.open('ditu.jpg')) 
font=r'C:\\Windows\\fonts\\msyh.ttf' 

# 去掉英文,保留中文 
resultword=re.sub("[A-Za-z0-9\[\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\'\:\;\'\,\[\]\.\<\>\/\?\~\。\@\#\\\&\*\%]", "",word) 
wordlist_after_jieba = jieba.cut(resultword) 
wl_space_split = " ".join(wordlist_after_jieba) 

# 设置停用词 
sw = set(STOPWORDS) 
sw.add("研发")
sw.add("系列")
sw.add("这里不多写了,根据自己情况添加")

# 关键一步
my_wordcloud = WordCloud(scale=4,font_path=font,mask=image,stopwords=sw,background_color='white',
             max_words = 100,max_font_size = 60,random_state=20).generate(wl_space_split) 

#显示生成的词云 
plt.imshow(my_wordcloud)
plt.axis("off") 
plt.show() 

#保存生成的图片
my_wordcloud.to_file('result.jpg')

其中 ditu.jpg 为安徽省轮廓图片:

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

运行结果:

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

可以看到,智能设备、施工工法、系统平台、电缆、机器人等都是出现较多的词汇。

最后是秘笈揭晓时间:

为什么我这张图如此清晰?打开原图可以看到,这图的分辨率是1800*2500。你用网上的大多数代码,最后生成的图,尺寸很小,上面字迹边缘模糊。

关键在于调用WordCloud时的一个参数,回放一下代码:

# 关键一步
my_wordcloud = WordCloud(scale=4,font_path=font,mask=image,stopwords=sw,background_color='white',
max_words = 100,max_font_size = 60,random_state=20).generate(wl_space_split)

第一个参数我写的是 scale=4,这个数值越大,产生的图片分辨率越高,字迹越清晰。你可以调到64试试,我希望你的电脑足够快 /笑哭

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python操作列表之List.insert()方法的使用
May 20 Python
Python中的is和==比较两个对象的两种方法
Sep 06 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
Feb 03 Python
python正则表达式爬取猫眼电影top100
Feb 24 Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 Python
对python中Json与object转化的方法详解
Dec 31 Python
Centos部署django服务nginx+uwsgi的方法
Jan 02 Python
解决django服务器重启端口被占用的问题
Jul 26 Python
Python3的unicode编码转换成中文的问题及解决方案
Dec 10 Python
python数据分析工具之 matplotlib详解
Apr 09 Python
python实现文件+参数发送request的实例代码
Jan 05 Python
Python中的程序流程控制语句
Feb 24 Python
Python离线安装PIL 模块的方法
Jan 08 #Python
Python数据预处理之数据规范化(归一化)示例
Jan 08 #Python
Python实现的拉格朗日插值法示例
Jan 08 #Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 #Python
在python3中pyqt5和mayavi不兼容问题的解决方法
Jan 08 #Python
Django之模型层多表操作的实现
Jan 08 #Python
对python mayavi三维绘图的实现详解
Jan 08 #Python
You might like
随时给自己贴的图片加文字的php水印
2007/03/16 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
javascript 短路法代码精简
2009/08/20 Javascript
javascript 最常用的10个自定义函数[推荐]
2009/12/26 Javascript
js post方式传递提交的实现代码
2010/05/31 Javascript
jQuery表格行换色的三种实现方法
2011/06/27 Javascript
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
jquery动态添加option示例
2013/12/30 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
vue2组件之select2调用的示例代码
2017/10/12 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
angular多语言配置详解
2019/05/16 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
python实现巡检系统(solaris)示例
2014/04/02 Python
python MySQLdb Windows下安装教程及问题解决方法
2015/05/09 Python
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
python并发和异步编程实例
2018/11/15 Python
Python pickle模块实现对象序列化
2019/11/22 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
美国户外生活方式品牌:Eddie Bauer
2016/12/28 全球购物
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
什么是servlet链?
2014/07/13 面试题
表彰会主持词
2014/03/26 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
公司管理建议书
2015/09/14 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书