大數據可視化案例一:詞雲


詞雲:

  “詞雲”這個概念由美國西北大學新聞學副教授、新媒體專業主任里奇·戈登(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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM