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