大数据可视化案例一:词云

时间:2024-02-19 17:27:01

词云:

  “词云”这个概念由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(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