文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

用Python和WordCloud绘制词

2023-01-30 23:20

关注

环境及模块:

  Win7 64位

  Python 3.6.4

  WordCloud 1.5.0

  Pillow 5.0.0

  Jieba 0.39

 目标:

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

 思路:

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

 扩展:

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

 秘笈:

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

 

本文由hATEmATH原创 转载请注明出处:http://www.cnblogs.com/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')

 

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

运行结果:

 

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

 

最后是秘笈揭晓时间:

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

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

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

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

 

本文由hATEmATH原创 转载请注明出处:http://www.cnblogs.com/hatemath/

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯