python数据可视化:数据分析后的词云图片生成!
词云的出现无疑是数据可视化领域一个强大的存在,为了实现能生成一个漂亮的词云图也是费了一番周折。
主要实现思路就是通过wordcloud的关键词统计以及matplotlib的可视化展示从而能从可视化图中一眼便可以看出关键词出现的频次。
从而知道大家最近关注的热点是什么?本文只说明词云的应用技巧,后面的文章将会说明关于情感分析相关的内容。
这里主要使用了两个python的非标准库,分别是matplotlib和wordcloud模块。
关于这两个库在很多的python解释器版本中是存在冲突的,因此这里将相关的版本说明一下。
python解释器版本:3.6.8
matplotlib版本:3.0.3
wordcloud版本:1.8.2.2
由于这两个库都是python的非标准库需要使用pip的方式安装一下。
pip install wordcloud
pip install matplotlib==3.0.3
安装完成之后,将这两个模块导入到我们的代码块中,建议不要使用python3.11的解释器版本,坑确实有点多。
# Importing the wordcloud module.
import wordcloud
# Importing the `pyplot` module from the `matplotlib` package.
import matplotlib.pyplot as plt
为了能够使matplotlib正确的显示中文,下面对matplotlib的编码和字体进行设置,这也是常用的范式。
# Setting the default font to be used by matplotlib.
plt.rcParams['font.sans-serif'] = ['SimHei']
# This is a matplotlib setting that allows the use of unicode characters in the plot.
plt.rcParams['axes.unicode_minus'] = False
接下来,我们创建一个sources列表数据作为生成词云时所需的数据来源。
# This is a list of words that will be used to generate the word cloud.
sources = ['加油', '百度', '热搜', '评论', '大数据', '展示', '效果', '疫情', '全国加油', '众志成城', '加油', '大数据',
'加油', '统一战线', '全国', '热搜', '疫情', '化妆', '明星', '跋山涉水', '奋斗精神', '全国人民']
# This is a string method that joins all the elements of the list `sources` into a single string.
source_data = ' '.join(sources)
创建一个WordCloud的词云对象,并且设置生成词云的背景/长度/宽度/字体等参数,其中的msyh.ttc表示字体库的设置。
# This is creating a word cloud object.
cloud_ = wordcloud.WordCloud(font_path="msyh.ttc", width=800, height=600, background_color="white", max_words=30)
然后使用WordCloud对象提供的generate接口获取数据来源,并生成词云对象保存成图片。
# This is generating the word cloud.
cloud_.generate(source_data)
# This is saving the word cloud as an image file.
cloud_.to_file("热点词云.jpg")
设置matplotlib对象的标题/大小/显示格式等参数将生成的词云对象可视化展示。
# This is setting the size of the figure.
plt.figure(figsize=(6, 6.5))
# This is displaying the word cloud as an image.
plt.imshow(cloud_, interpolation='bicubic')
# This is turning off the axis of the plot.
plt.axis('off')
# This is displaying the plot.
plt.show()
「Python 集中营」,只做知识分享 !
0条评论