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