91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何制作數(shù)據(jù)可視化大屏

Linux愛好者 ? 來源:數(shù)據(jù)分析與統(tǒng)計學之美 ? 作者:黃偉呢 ? 2021-10-12 16:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

經(jīng)常有小伙伴問,如何制作數(shù)據(jù)可視化大屏?

今天將手把手帶你爬取奧運會相關信息,并利用可視化大屏為你展示奧運詳情。讓一個沒關注過奧運會的朋友,也能夠秒懂奧運會。

1、項目背景

奧運會剛剛過去,你是否已經(jīng)看過2020東京奧運會呢?

2、奧運會相關信息爬取

  • 爬取字段: 國家、國家ID、排名、金牌數(shù)、銀牌數(shù)、銅牌數(shù)、獎牌總數(shù)、項目名、運動員、獲獎類型、獲獎時間;
  • 爬取說明: 基于兩個接口的數(shù)據(jù)爬取【json格式的數(shù)據(jù)】,直接采用鍵值對的方式獲取相關數(shù)據(jù);
  • 使用工具: Pandas+requests

本文是基于兩個接口的數(shù)據(jù)爬取,相對容易的多。

#這個鏈接主要展示:各國的金銀銅牌及其總數(shù)!
https://app-sc.miguvideo.com/vms-livedata/olympic-medal/total-table/15/110000004609

#這個鏈接主要展示:每個參賽隊員的參賽項目和獲得的獎牌情況!
https://app-sc.miguvideo.com/vms-livedata/olympic-medal/total-table/15/110000004609

① 導入相關庫

importrequests
importpandasaspd
frompprintimportpprint

requests庫用于發(fā)起網(wǎng)頁請求,獲取網(wǎng)頁中的源代碼;

pandas庫用于存儲和讀取獲取到的信息;

pprint庫是漂亮的打印,對于json格式的數(shù)據(jù),能夠很好的展示結構,方便我們解析;

② 爬蟲講解

url='https://app-sc.miguvideo.com/vms-livedata/olympic-medal/total-table/15/110000004609'
data=requests.get(url).json()
pprint(data)

三行代碼就可以獲取到網(wǎng)頁的源代碼,利用pprint庫,可以清晰的展示json結構,對于我們解析數(shù)據(jù)很有幫助。

我們要的數(shù)據(jù),都存在于body鍵下面的allMedalData鍵中,allMedalData鍵的值是一個列表,里面有很多字典組成的鍵值對信息,就是我們要爬取的數(shù)據(jù)。

直接利用鍵獲取對應的值信息,代碼如下:

df1=pd.DataFrame()
forinfoindata1['body']['allMedalData']:
name=info['countryName']
name_id=info['countryId']
rank=info['rank']
gold=info['goldMedalNum']
silver=info['silverMedalNum']
bronze=info['bronzeMedalNum']
total=info['totalMedalNum']
#組織數(shù)據(jù)
orangized_data=[[name,name_id,rank,gold,silver,bronze,total]]
#然后追加df
df1=df1.append(orangized_data)
df1.columns=['名稱','ID','排名','金牌','銀牌','銅牌','獎牌總數(shù)']
df1

對于另外一個網(wǎng)頁,我們采取同樣的方式。

url='https://app-sc.miguvideo.com/vms-livedata/olympic-medal/detail-total/15/110000004609'
data2=requests.get(url).json()
pprint(data2)

是不是此時感覺結構更清楚了?

df2=pd.DataFrame()
forinfoindata2['body']['medalTableDetail']:
english_name=info['countryName']
name_id=info['countryId']
award_time=info['awardTime']
item_name=info['bigItemName']
sports_name=info['sportsName']
medal_type=info['medalType']
#組織數(shù)據(jù)
orangized_data=[[english_name,name_id,award_time,item_name,sports_name,medal_type]]
#然后追加df
df2=df2.append(orangized_data)
df2.columns=['英文縮寫','ID','獲獎時間','項目名','運動員','金牌類型']
df2

3、數(shù)據(jù)預處理

對于爬取到的數(shù)據(jù),往往是有問題的,我們需要提前預處理一下,方便后續(xù)做可視化展示。

① 數(shù)據(jù)拼接

對我們共有三個表格,分別存儲著不同的信息。我們需要對其進行合適的拼接,方便最后可視化。

表格df1表示各國獎牌數(shù),數(shù)據(jù)是這樣的:

表格df3表示國家名中英文對照表,數(shù)據(jù)是這樣的:

利用上述兩張表,我們可以左連接,將英文名稱添加到df1表上。

df4=pd.merge(df1,df3,on="名稱",how="left")
df4.head(10)

最終效果如下:

表格df5表示運動項目獲獎詳情,數(shù)據(jù)是這樣的:

此時,我們又可以將df4和df5做一個左連接,將這兩張表合成一張大表,就可以得到不同國家不同項目獲得的獎牌數(shù)。

df6=pd.merge(df4,df5,on="名稱",how="left")
df6.head(10)

② 關于金牌類型的說明

上面得到的表df6,其實還不是最后的表,因為上述表中金牌類型是數(shù)字1、2、3,但是我們需要的是金牌、銀牌、銅牌。因此,我們自己再定義一個df7。

x={"獲獎名次":["金牌","銀牌","銅牌"],"金牌類型":[1,2,3]}
df7=pd.DataFrame(x)
df7

效果如下:

af30f8e0-2ac9-11ec-82a8-dac502259ad0.png

因此,我們拿df6與自己構造得到的df7再做一個左連接,就可以的到最后完整的表了。

df8=pd.merge(df6,df7,on="名稱",how="left")
df8.head(10)

③ 中英文名映射轉換

由于使用pyecharts繪制世界地圖時,名稱必須是英文的,所以我們需要將這里的中文名稱映射為英文名稱。于是我在網(wǎng)上找到了下面這個文件:

afec523e-2ac9-11ec-82a8-dac502259ad0.png

我們要做的就是將它與表格中的數(shù)據(jù),做個映射轉換。先把它轉換為一個Excel文件吧,方便我們以后直接使用。

withopen("國家名中英文對照表.txt","r",encoding="utf-8")asf:
x=f.read()

df3=pd.DataFrame()
foriinx.split("
"):
x=i.split(":")[0].strip()
y=i.split(":")[1].strip()
orangined_data=[[x,y]]
df3=df3.append(orangined_data)
df3.columns=["名稱","英文名稱"]
df3.to_excel("國家名中英文對照表.xlsx",index=None)

然后,在和上述的df2表格做一個左連接即可。

df4=pd.merge(df2,df3,on="名稱",how="left")
df4

結果如下:

adedc3a0-2ac9-11ec-82a8-dac502259ad0.png

4、可視化展示

關于可視化部分,使用的是pyecharts庫。這部分一共分以下8個主題:

  • ① 2020東京奧運會各國獎牌分布圖;
  • ② 2020東京奧運會獎牌榜詳情;
  • ③ 2020東京奧運會獎牌榜總數(shù)前十名;
  • ④ 2020東京奧運會金牌榜總數(shù)前十名;
  • ⑤ 2020東京奧運會中國各項目獲獎詳情;
  • ⑥ 中國選手每日獲得獎牌數(shù);
  • ⑦ 中國選手每日獲得金牌數(shù);
  • ⑧ 中國選手奪金詳細數(shù)據(jù);

說明: 這里就不做結果分析了,因為通過上圖,相信大家應該能夠很清晰的了解到2020東京奧運會,哪怕你沒看過。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 可視化
    +關注

    關注

    1

    文章

    1355

    瀏覽量

    22818
  • python
    +關注

    關注

    57

    文章

    4877

    瀏覽量

    90108

原文標題:用 Python 制作可視化大屏,特簡單!

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    工業(yè)物聯(lián)網(wǎng)可視化平臺是什么?有什么功能?

    工業(yè)物聯(lián)網(wǎng)可視化平臺是基于物聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等技術,將工業(yè)生產(chǎn)中的設備、系統(tǒng)、流程等數(shù)據(jù)以圖形方式呈現(xiàn),實現(xiàn)實時監(jiān)控、智能分析與交互式管理的數(shù)字化工具。 其核心功能涵蓋
    的頭像 發(fā)表于 11-17 17:49 ?1292次閱讀

    工業(yè)可視化平臺是什么

    工業(yè)可視化平臺是一種基于信息技術和可視化技術,將工業(yè)生產(chǎn)過程中的數(shù)據(jù)、信息、流程等以直觀、動態(tài)的圖形方式呈現(xiàn),并實現(xiàn)交互式管理與分析的數(shù)字化工具。它通過整合工業(yè)物聯(lián)網(wǎng)(IIoT)、大
    的頭像 發(fā)表于 10-24 18:00 ?1084次閱讀

    光伏電站可視化的實現(xiàn)

    實現(xiàn)光伏電站可視化,核心是在于通過直觀的視覺界面,解決傳統(tǒng)運維中低效巡檢、數(shù)據(jù)孤島、被動響應等痛點,從而提升運營效率并提供決策支持。這是一種有效的技術手段,通過數(shù)字孿生、三維建模、數(shù)據(jù)
    的頭像 發(fā)表于 10-21 17:29 ?1179次閱讀
    光伏電站<b class='flag-5'>可視化</b>的實現(xiàn)

    數(shù)字孿生可視化系統(tǒng)構建行業(yè)數(shù)字智能管理生態(tài)!

    數(shù)字孿生可視化系統(tǒng)具備豐富的模型組件,包括二維平面組件及3D模型組件,可根據(jù)用戶需求進行定制。數(shù)字孿生可視化系統(tǒng)在行業(yè)數(shù)字升級、數(shù)字管理中有著重要的意義,充分利用大
    的頭像 發(fā)表于 09-19 11:45 ?753次閱讀
    數(shù)字孿生<b class='flag-5'>可視化</b>系統(tǒng)構建行業(yè)數(shù)字<b class='flag-5'>化</b>智能管理生態(tài)!

    智慧用電安全解決方案:打造全流程可視化管控

    預警、可視管控”的閉環(huán)管理體系,其核心在于實現(xiàn)對電氣安全風險的全流程、可視化、主動性管控。 一、 全域感知與數(shù)據(jù)采集:可視化管控的數(shù)據(jù)基石
    的頭像 發(fā)表于 09-04 16:17 ?777次閱讀
    智慧用電安全解決方案:打造全流程<b class='flag-5'>可視化</b>管控

    如何使用協(xié)議分析儀進行數(shù)據(jù)分析與可視化

    使用協(xié)議分析儀進行數(shù)據(jù)分析與可視化,需結合數(shù)據(jù)捕獲、協(xié)議解碼、統(tǒng)計分析及可視化工具,將原始數(shù)據(jù)轉化為可解讀的圖表和報告。以下是詳細步驟及關鍵
    發(fā)表于 07-16 14:16

    工業(yè)設備可視化管理系統(tǒng)是什么

    工業(yè)設備可視化管理系統(tǒng)是一種基于物聯(lián)網(wǎng)(IoT)、大數(shù)據(jù)、云計算、數(shù)字孿生等技術,對工業(yè)設備的運行狀態(tài)、性能參數(shù)、維護信息等進行實時監(jiān)測、數(shù)據(jù)整合與可視化呈現(xiàn)的智能管理平臺。它通過將復
    的頭像 發(fā)表于 05-27 14:56 ?1162次閱讀
    工業(yè)設備<b class='flag-5'>可視化</b>管理系統(tǒng)是什么

    光伏電站可視化這種技術的難點有哪些?

    通過數(shù)字孿生、三維建模、數(shù)據(jù)融合等技術,將光伏電站的物理環(huán)境、設備狀態(tài)、發(fā)電數(shù)據(jù)等信息以圖形、動態(tài)的形式呈現(xiàn),這便是光伏電站可視化,其核
    的頭像 發(fā)表于 05-15 10:56 ?645次閱讀

    結構可視化:利用數(shù)據(jù)編輯器剖析數(shù)據(jù)內在架構?

    結構可視化聚焦于展示數(shù)據(jù)的內部結構和各部分之間的關系,使企業(yè)能夠深入理解數(shù)據(jù)的組織方式和層次體系,從而更好地進行數(shù)據(jù)管理和分析。通過結構可視化
    的頭像 發(fā)表于 05-07 18:42 ?702次閱讀

    工業(yè)設備數(shù)據(jù)集中監(jiān)控可視化管理平臺是什么

    工業(yè)設備數(shù)據(jù)集中監(jiān)控可視化管理平臺是一種用于整合、監(jiān)控和可視化工業(yè)設備數(shù)據(jù)的綜合性系統(tǒng),旨在幫助企業(yè)實現(xiàn)設備數(shù)據(jù)的集中管理、實時監(jiān)控和
    的頭像 發(fā)表于 05-06 11:10 ?1091次閱讀

    VirtualLab Fusion應用:3D系統(tǒng)可視化

    描述和F-Theta透鏡的應用示例。 光學系統(tǒng)的3D-可視化 VirtualLab Fusion提供的工具可以實現(xiàn)光學系統(tǒng)的3D可視化,因此可以用于檢查元件的位置,以及快速了解系統(tǒng)內部的光傳播情況
    發(fā)表于 04-30 08:47

    可視化組態(tài)物聯(lián)網(wǎng)平臺是什么

    可視化組態(tài)物聯(lián)網(wǎng)平臺是物聯(lián)網(wǎng)技術與組態(tài)技術相結合的產(chǎn)物,是通過提供豐富的圖形組件和可視化元素,讓用戶能夠以直觀、便捷的方式對物聯(lián)網(wǎng)數(shù)據(jù)進行監(jiān)控、分析和管理的平臺。以下是其具體介紹:
    的頭像 發(fā)表于 04-21 10:40 ?911次閱讀

    可視化組態(tài)數(shù)據(jù)管理平臺是什么

    可視化組態(tài)數(shù)據(jù)管理平臺是一種用于工業(yè)自動、物聯(lián)網(wǎng)、能源管理等領域的軟件平臺,它結合了可視化和組態(tài)技術,幫助用戶實現(xiàn)數(shù)據(jù)的采集、管理、展示和
    的頭像 發(fā)表于 04-21 10:00 ?751次閱讀

    工業(yè)數(shù)據(jù)采集形成可視化數(shù)據(jù)看板解決方案

    可視化數(shù)據(jù)看板是一個直觀、便捷的信息展示界面。通過把車間的實時生產(chǎn)數(shù)據(jù)、訂單進度、設備狀態(tài)、產(chǎn)能效率率等,用清晰、可視化的形式展示出來,讓管理者和員工都能一目了然,為企業(yè)管理者提供科學
    的頭像 發(fā)表于 03-19 14:31 ?1188次閱讀
    工業(yè)<b class='flag-5'>數(shù)據(jù)</b>采集形成<b class='flag-5'>可視化</b><b class='flag-5'>數(shù)據(jù)</b>看板解決方案