词云:
“词云”这个概念由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(Rich Gordon)于近日提出。戈登做过编辑、记者,曾担任迈阿密先驱报(Miami Herald)新媒体版的主任。他一直很关注网络内容发布的最新形式——即那些只有互联网可以采用而报纸、广播、电视等其它媒体都望尘莫及的传播方式。通常,这些最新的、最适合网络的传播方式,也是最好的传播方式。 因此,“词云”就是通过形成“关键词云层”或“关键词渲染”,对网络文本中出现频率较高的“关键词”的视觉上的突出。
词云图过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。
在之前通过爬虫获得新冠肺炎数据之后,使用词云来直观反映哪些地区的疫情较严重。(字越大反映越严重)
第一步:读取Excel数据
import openpyxl wb = openpyxl.load_workbook(\'data.xlsx\')
第二步:过滤数据并且获得国内疫情数据的地点与确诊人数数据
ws = wb[\'国内疫情\'] frequency_in = {} for row in ws.values: if row[0] == \'省份\': pass else: frequency_in[row[0]] = float(row[1])
第三步:词云
from wordcloud import WordCloud #中文隶书 wordcloud = WordCloud(font_path=\'C:/Windows/Fonts/SIMLI.TTF\', background_color="white", width=1920,height=1080)
其中使用C:/Windows/Fonts/SIMLI.TTF表示中文隶书的表示方式,也可以使用其他的表示方式。
第四步:构建词云
#数据确诊病例生成词云 wordcloud.generate_from_frequencies(frequency_in) #保存词云 wordcloud.to_file(\'wordcloud_in.png\')
国内疫情词云结果:
接下来绘制国外的词云:
首先从不同的sheet里获取数据:
frequency_out = {} sheet_name = wb.sheetnames for each in sheet_name: if "洲" in each: ws = wb[each] for row in ws.values: if row[0] == \'国家\': pass else: frequency_out[row[0]] = float(row[1])
接下来绘制词云:
#数据确诊病例生成词云 wordcloud.generate_from_frequencies(frequency_out) #保存词云 wordcloud.to_file(\'wordcloud_out.png\')
结果展示:
本次内容参考自:
https://www.jianshu.com/p/5c8b67037a4e
https://www.bilibili.com/video/bv1X54y1R7cu