您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“JavaScript可視化顯示數(shù)據(jù)實例分析”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當(dāng),希望這篇“JavaScript可視化顯示數(shù)據(jù)實例分析”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
主要包含大V們的昵稱、性別、地點、類型、點贊數(shù)、粉絲數(shù)、視頻數(shù)、評論數(shù)、分享數(shù)、關(guān)注數(shù)、畢業(yè)學(xué)校、認證、簡介等信息。<br>其中粉絲最多的是「人民日報」,接近1.2億?!?strong>央視新聞」也破億了,記得之前破億的時候還上過熱搜~<br>粉絲最少的博主也有近150w+的粉絲,這5000多位大V累計236.5億粉絲,地球人口的三倍多!<br>數(shù)據(jù)可視化<br>導(dǎo)入相關(guān)庫,然后讀取數(shù)據(jù)。
1. from pyecharts.charts import Pie, Bar, TreeMap, Map, Geo 2. from wordcloud import WordCloud, ImageColorGenerator 3. from pyecharts import options as opts 4. import matplotlib.pyplot as plt 5. from PIL import Image 6. import pandas as pd 7. import numpy as np 8. import jieba 9. 10. df = pd.read_csv('douyin.csv', header=0, encoding='utf-8-sig') 11. print(df)
整體上看,男女比例差別不大。除去未知的數(shù)據(jù),基本是1:1。可視化代碼如下。
1. def create_gender(df): 2. df = df.copy() 3. # 修改數(shù)值 4. df.loc[df.gender == '0', 'gender'] = '未知' 5. df.loc[df.gender == '1', 'gender'] = '男性' 6. df.loc[df.gender == '2', 'gender'] = '女性' 7. # 根據(jù)性別分組 8. gender_message = df.groupby(['gender']) 9. # 對分組后的結(jié)果進行計數(shù) 10. gender_com = gender_message['gender'].agg(['count']) 11. gender_com.reset_index(inplace=True) 12. 13. # 餅圖數(shù)據(jù) 14. attr = gender_com['gender'] 15. v1 = gender_com['count'] 16. 17. # 初始化配置 18. pie = Pie(init_opts=opts.InitOpts(width="800px", height="400px")) 19. # 添加數(shù)據(jù),設(shè)置半徑 20. pie.add("", [list(z) for z in zip(attr, v1)], radius=["40%", "75%"]) 21. # 設(shè)置全局配置項,標(biāo)題、圖例、工具箱(下載圖片) 22. pie.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V性別分布情況", pos_left="center", pos_top="top"), 23. legend_opts=opts.LegendOpts(orient="vertical", pos_left="left"), 24. toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}})) 25. # 設(shè)置系列配置項,標(biāo)簽樣式 26. pie.set_series_opts(label_opts=opts.LabelOpts(is_show=True, formatter=":saiwugr%")) 27. pie.render("抖音大V性別分布情況.html")
點贊數(shù)TOP10,除了「小團團」和「毒舌」,其他都是新聞媒體類的大V。<br>今年因為疫情,有很多新聞在抖音上都是第一時間傳播,所以影響力比較大,點贊也就比較多了。<br>記得「四川觀察」還被評論區(qū)調(diào)侃為四處觀察,意思是發(fā)布消息非??臁?lt;br>
好奇為什么會有100萬點贊數(shù)的大V,小F的抖音號都有20w+的贊。<br>最后發(fā)現(xiàn)是第三方監(jiān)測收錄的問題,下次可以直接剔除這批數(shù)據(jù)。<br>點贊破億的有500多個大V,1000萬到5000萬點贊數(shù)的大V人數(shù)最多。<br>可視化代碼如下。
1. def create_likes(df): 2. # 排序,降序 3. df = df.sort_values('likes', ascending=False) 4. # 獲取TOP10的數(shù)據(jù) 5. attr = df['name'][0:10] 6. v1 = [float('%.1f' % (float(i) / 100000000)) for i in df['likes'][0:10]] 7. 8. # 初始化配置 9. bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px")) 10. # x軸數(shù)據(jù) 11. bar.add_xaxis(list(reversed(attr.tolist()))) 12. # y軸數(shù)據(jù) 13. bar.add_yaxis("", list(reversed(v1))) 14. # 設(shè)置全局配置項,標(biāo)題、工具箱(下載圖片)、y軸分割線 15. bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V點贊數(shù)TOP10(億)", pos_left="center", pos_top="18"), 16. toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}), 17. xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True))) 18. # 設(shè)置系列配置項,標(biāo)簽樣式 19. bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="right", color="black")) 20. bar.reversal_axis() 21. bar.render("抖音大V點贊數(shù)TOP10(億).html") 22. 23. 24. def create_cut_likes(df): 25. # 將數(shù)據(jù)分段 26. Bins = [0, 1000000, 5000000, 10000000, 25000000, 50000000, 100000000, 5000000000] 27. Labels = ['0-100', '100-500', '500-1000', '1000-2500', '2500-5000', '5000-10000', '10000以上'] 28. len_stage = pd.cut(df['likes'], bins=Bins, labels=Labels).value_counts().sort_index() 29. # 獲取數(shù)據(jù) 30. attr = len_stage.index.tolist() 31. v1 = len_stage.values.tolist() 32. 33. # 生成柱狀圖 34. bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px")) 35. bar.add_xaxis(attr) 36. bar.add_yaxis("", v1) 37. bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V點贊數(shù)分布情況(萬)", pos_left="center", pos_top="18"), 38. toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}), 39. yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True))) 40. bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="top", color="black")) 41. bar.render("抖音大V點贊數(shù)分布情況(萬).html")
「人民日報」和「央視新聞」粉絲都破億了。<br>和去年的抖音數(shù)據(jù)一對比,「熱巴」還少了幾十萬的粉絲,陳赫倒是漲了不少粉絲。<br>今年直播帶貨火熱,李佳琦排入前十,也不足為奇,畢竟帶貨一哥。<br>
再來看一下大V們粉絲數(shù)的分布情況。<br>
5000萬以上56個,妥妥的大佬。<br>200w~500w的人數(shù)最多,好多一時爆火的博主,一段時間后也基本不怎么漲粉了。<br>可能都停留到了這里,比如小F以前刷過的「三支花」,想不明白這都能火...<br>這里的可視化代碼和上面差不多,就不放出來了。
抖音視頻的評論區(qū)也是比較有意思的地方。<br>比如刷劇催更的,「趕緊去更新,都過了十幾分鐘了,生產(chǎn)隊的驢都不敢休息這么久」。<br>還有五只瘋狂搖頭的貓,也占領(lǐng)了評論區(qū)一段時間。<br><br> <br>只能說,太魔性了~<br>總的來說,媒體類的視頻評論較多。<br>分享數(shù)TOP10<br>
抖音的分享是視頻對外傳播的一個方法,可以讓更多的人看到視頻。<br>從數(shù)據(jù)上看,大家還是比較喜歡分享新聞類以及美食類的視頻。<br>可能過年疫情,居家一個月的時間,除了葛優(yōu)躺看新聞,就是吃吃吃。<br>每個人,也就都有了一個成為大廚的夢想。<br>各類型點贊數(shù)/粉絲數(shù)匯總分布圖
記得曾經(jīng)一位大佬說過,抖音這個產(chǎn)品是消磨你時間的(Kill Time),而不是節(jié)約時間(Save Time),技術(shù)稍微深一點的視頻基本上生存不下去。<br>由上面的矩形樹圖可以知道,大家都喜歡「美女」類型的視頻,畢竟誰不喜歡漂亮妹子呢~<br>比如說深情看銅人的妹子、高考送滿天星的妹子,刀小刀等等,妹子爆火的視頻太多了...<br>另外「搞笑」、「游戲」、「劇情」類的視頻也比較吸引人,妥妥的Kill Time。<br>可視化代碼如下。
1. def create_type_likes(df): 2. # 分組求和 3. likes_type_message = df.groupby(['category']) 4. likes_type_com = likes_type_message['likes'].agg(['sum']) 5. likes_type_com.reset_index(inplace=True) 6. # 處理數(shù)據(jù) 7. dom = [] 8. for name, num in zip(likes_type_com['category'], likes_type_com['sum']): 9. data = {} 10. data['name'] = name 11. data['value'] = num 12. dom.append(data) 13. print(dom) 14. 15. # 初始化配置 16. treemap = TreeMap(init_opts=opts.InitOpts(width="800px", height="400px")) 17. # 添加數(shù)據(jù) 18. treemap.add('', dom) 19. # 設(shè)置全局配置項,標(biāo)題、工具箱(下載圖片) 20. treemap.set_global_opts(title_opts=opts.TitleOpts(title="各類型抖音大V點贊數(shù)匯總圖", pos_left="center", pos_top="5"), 21. toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}), 22. legend_opts=opts.LegendOpts(is_show=False)) 23. 24. treemap.render("各類型抖音大V點贊數(shù)匯總圖.html")
「李現(xiàn)」作為2019年的頂級流量,登頂?shù)谝唬瑳]啥問題。<br>其他的博主小F一個也沒關(guān)注過。<br>去搜索了一下,發(fā)現(xiàn)大部分賬號只有一兩個視頻。<br>看了評論區(qū),發(fā)現(xiàn)原來號被賣掉了,有可能是大V和公司分手了,畢竟現(xiàn)在好多做網(wǎng)紅的公司,不火就下一位。<br>
另一種就是個人轉(zhuǎn)讓賬號,變現(xiàn)賺錢跑路咯。<br>可視化代碼如下。
1. def create_avg_likes(df): 2. # 篩選 3. df = df[df['videos'] > 0] 4. # 計算單個視頻平均點贊數(shù) 5. df.eval('result = likes/(videos*10000)', inplace=True) 6. df['result'] = df['result'].round(decimals=1) 7. df = df.sort_values('result', ascending=False) 8. 9. # 取TOP10 10. attr = df['name'][0:10] 11. v1 = ['%.1f' % (float(i)) for i in df['result'][0:10]] 12. 13. # 初始化配置 14. bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px")) 15. # 添加數(shù)據(jù) 16. bar.add_xaxis(list(reversed(attr.tolist()))) 17. bar.add_yaxis("", list(reversed(v1))) 18. # 設(shè)置全局配置項,標(biāo)題、工具箱(下載圖片)、y軸分割線 19. bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V平均視頻點贊數(shù)TOP10(萬)", pos_left="center", pos_top="18"), 20. toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}), 21. xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True))) 22. # 設(shè)置系列配置項 23. bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="right", color="black")) 24. # 翻轉(zhuǎn)xy軸 25. bar.reversal_axis() 26. bar.render("抖音大V平均視頻點贊數(shù)TOP10(萬).html")
省份看完了,來看一下城市TOP10吧。<br>
北京遙遙領(lǐng)先,大V的聚集地。<br>杭州盛產(chǎn)網(wǎng)紅的城市,位列第二。<br>可視化代碼如下。
1. def create_city(df): 2. df1 = df[df["country"] == "中國"] 3. df1 = df1.copy() 4. df1["city"] = df1["city"].str.replace("市", "") 5. 6. df_num = df1.groupby("city")["city"].agg(count="count").reset_index().sort_values(by="count", ascending=False) 7. df_city = df_num[:10]["city"].values.tolist() 8. df_count = df_num[:10]["count"].values.tolist() 9. 10. bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px")) 11. bar.add_xaxis(df_city) 12. bar.add_yaxis("", df_count) 13. bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V城市分布TOP10", pos_left="center", pos_top="18"), 14. toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}), 15. yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True))) 16. bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="top", color="black")) 17. bar.render("抖音大V城市分布TOP10.html")
看完國內(nèi),就應(yīng)該是國外了。<br>抖音上有著不少漢語講得非常好的「歪果仁」。<br>
美國居第一,不少在美國的華人會分享他們在美國生活的一些事情。<br>國內(nèi)也有人感興趣這方面的東西,看看國外的月亮究竟圓不圓。<br>哈哈說笑了,其實是讓我們了解國外的生活。
北影、中傳、浙傳、中戲、上戲、央美,妥妥的演藝圈大佬。<br>通過代碼查詢一下大V們的認證情況。
1. df1 = df[(df["custom_verify"] != "") & (df["custom_verify"] != "未知")] 2. df1 = df1.copy() 3. df_num = df1.groupby("custom_verify")["custom_verify"].agg(count="count").reset_index().sort_values(by="count", ascending=False) 4. print(df_num[:20])
得到結(jié)果如下。
都是需要表演表達天賦的~
可以看到大部分大V都留下了商務(wù)合作的信息,利好內(nèi)容創(chuàng)作者,如此才能雙贏。<br>據(jù)統(tǒng)計,在抖音2200萬以上創(chuàng)作者實現(xiàn)了超過417億元的收入。<br>從創(chuàng)作到創(chuàng)益,這句話抖音講的很好??梢暬a如下。
1. def create_wordcloud(df, picture): 2. words = pd.read_csv('chineseStopWords.txt', encoding='gbk', sep='\t', names=['stopword']) 3. # 分詞 4. text = '' 5. df1 = df[df["signature"] != ""] 6. df1 = df1.copy() 7. for line in df1['signature']: 8. text += ' '.join(jieba.cut(str(line).replace(" ", ""), cut_all=False)) 9. # 停用詞 10. stopwords = set('') 11. stopwords.update(words['stopword']) 12. backgroud_Image = plt.imread('douyin.png') 13. # 使用抖音背景色 14. alice_coloring = np.array(Image.open(r"douyin.png")) 15. image_colors = ImageColorGenerator(alice_coloring) 16. wc = WordCloud( 17. background_color='white', 18. mask=backgroud_Image, 19. font_path='方正蘭亭刊黑.TTF', 20. max_words=2000, 21. max_font_size=70, 22. min_font_size=1, 23. prefer_horizontal=1, 24. color_func=image_colors, 25. random_state=50, 26. stopwords=stopwords, 27. margin=5 28. ) 29. wc.generate_from_text(text) 30. # 看看詞頻高的有哪些 31. process_word = WordCloud.process_text(wc, text) 32. sort = sorted(process_word.items(), key=lambda e: e[1], reverse=True) 33. print(sort[:50]) 34. plt.imshow(wc) 35. plt.axis('off') 36. wc.to_file(picture) 37. print('生成詞云成功!')
讀到這里,這篇“JavaScript可視化顯示數(shù)據(jù)實例分析”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。