gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

环境及模块:

  • win7 64位
  • python 3.6.4
  • wordcloud 1.5.0
  • pillow 5.0.0
  • jieba 0.39

目标:

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

思路:

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

扩展:

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

秘笈:

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

正式开始,show you the code:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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时的一个参数,回放一下代码:

?
1
2
3
# 关键一步
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试试,我希望你的电脑足够快 /笑哭 。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:http://www.cnblogs.com/hatemath/p/10238145.html 。

最后此篇关于用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)的文章就讲到这里了,如果你想了解更多关于用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com