上次看知乎的时候,看到了一位python大神爬取了一些人们在疫情结束后第一件事要干嘛的评论,并做成了云图,当时就觉得特别有意思,所以就来学习一下。
下载的话就不过多介绍了,百度上都有,主要说一下编辑云词很好用的工具以及如何去制作词云。
工具的介绍以及下载可以查知乎大神写的
https://zhuanlan.zhihu.com/p/33105153
安装好之后,更改一下默认目录,之后运行的话只需输入
jupyter notebook
因为默认是无法加载汉字的,所以需要复制一下本地字体进行导入
复制一个到你设置的jupyter notebook目录,导入即可
from wordcloud import WordCloud
import numpy as np
from PIL import Image
#实例化一个WordCloud对象
wcd = WordCloud(background_color="white",repeat=True,max_words=500,height=480,
width=854,max_font_size=100,font_path="fonts/msyh.ttc",colormap="YlGnBu_r",
mask=mask,contour_width=8,contour_color='white')
#很多选项都可以通过shite+tab键查看
#加载图片,白底的图片才可以
mask = np.array(Image.open("4.png"))
text = "剑姬 剑魔 杰斯 奥恩 VN 圣枪游侠 阿卡丽 吸血鬼 船长 "
#加载字符串
wcd.generate(text)
#生成词云
wcd.to_image()
#保存图片
wcd.to_file("shy.png")
wcd = WordCloud(background_color="None",repeat=True,max_words=500,height=480,
width=854,max_font_size=100,font_path="fonts/msyh.ttc",colormap="YlGnBu_r",
mask=mask,mode='RGBA')
#这里有一个bug,如果不去掉contour_width=8,contour_color='white',便会发生报错
text = "剑姬 剑魔 杰斯 奥恩 VN 圣枪游侠 阿卡丽 吸血鬼 船长 "
如果是这么长的一段话,又该怎么处理那?
text = "TheShy:首先第一个是个人认为薇恩打铁男是一个很好的英雄之一。在玩铁男的立场上,如果说不Ban薇恩的话,铁男是很难玩的。因为薇恩也是没有玩过这个英雄,所以当时也在犹豫到底要不要用这个英雄,但是当时队友说可以用这个英雄,就拿薇恩了。"
import jieba
text= "TheShy:首先第一个是个人认为薇恩打铁男是 \
一个很好的英雄之一。在玩铁男的立场上,如果说不Ban薇恩的话,\
铁男是很难玩的。因为薇恩也是没有玩过这个英雄,\
所以当时也在犹豫到底要不要用这个英雄,但是当时队友说可以用这个英雄\
,就拿薇恩了"
#jieba.lcut()可以生成一个list
jieba.lcut(text)
空格、符号会被自动去掉,但是wcd.generate(text)
需要传入的是字符串不是列表,而且传入的字符串需要每个字间隔都要有空格,可以改成如下的格式
" ".join(jieba.lcut(text))
这样generate方法就可以进行处理了
这个只是一个最简单的例子,之后会每天进行学习做一个不同的云图!!!
未完待续!!!