會玩數據,你也能夠繪出死忠粉才懂的星戰關係圖譜

做爲星戰迷,看了N遍星球大戰,你能說出《星球大戰》系列的7部電影中出現了多少個角色、多少個種族、多少艘飛船、多少架戰車嗎?不要掰着手指頭數了,看完這篇你能獲知想要的一切~html

##7部星戰,228種實體的1112種關係##程序員

木有看過星戰的同窗,一張圖就能夠告訴你,這7部電影裏,87名角色、21顆星球、37艘飛船、39架戰車、37個種族,還能告訴你,這228個實體的1112種關係。編程

程序員最擅長的事,就是要用數據呈現你(hu)想(shuo)看(ba)的(dao)。api

此次的數據源來自Star Wars API,聽說這是全球首個量化的、可供編程使用的星戰數據集,開發者通過漫長的蒐集和整理,彙總了上面提到的多項星戰電影數據(具體參數見文末)。ide

經過一系列數據收集、數據建模與定量分析,哪怕沒有看過星戰,也能夠經過對信息歸類整理,來給你們展示星戰錯綜複雜的角色關係。url

炫酷的交互請戳(PC端效果更佳)spa

PS. 要是圖片太酷炫、關係太複雜看不懂?記得點回來聽我給你解讀~htm

全景概覽.jpg

##知道這些,你能夠更懂「我是你的父親」##圖片

星戰影片涉及到了228個實體,這些實體之間的1112種關聯,是能夠用知識圖譜來刻畫——這樣你就更清楚地理解「我是你的父親」的相關信息了。ip

我是你的父親.jpg

知識圖譜實際上是個豐富的圖模型,圖譜中,節點表示實體、節點之間的邊表示實體之間的關聯,節點和邊均可以包含本身的屬性。

在圖譜上任何一個星戰關鍵詞,都能得到完整的知識體系。

爲了生成一張知識圖譜,須要完成如下三點內容:

  1. 定義好有哪幾類節點、節點之間存在哪幾類關係、節點和邊可能須要考慮到哪些數據;
  2. 基於準備好的數據,提取節點和邊;
  3. 使用可視化等技術進行展現,提供圖譜探索和關聯發現的功能。

構建完知識圖譜,接下來就是用了D3來展現。

在這個知識圖譜中,節點使用Circle或者Text來表示,不一樣顏色表示不一樣類別的節點,彼此相連的節點表示存在關聯,好比某個character參演了某部film、某個planet上生活着某個species等。

鼠標懸浮在某個節點上時,僅顯示和該節點之間相連的其餘節點,這樣就能更清楚地看到節點之間的關聯了。

固然,也能夠在搜索框中輸入關鍵詞,只有名稱中包含關鍵詞的節點纔會顯示,幫你快速找到你的絕地武士——LUKE。

對了,實體的相關介紹,也會在右下角顯示,請留意~

關係圖譜.jpg

好比絕地大師Obi-wan Kenobi出如今了這7部影片裏。

Obi-wan Kenobi.jpg

C-3PO這我的見人愛的逗比機器人,在6部影片裏均有出現。

C-3PO.jpg

說出「我是你的父親」的Darth Vader。

Darth Vader.jpg

##貫穿7部星戰的不是演員,是R2-D2##

知識圖譜爲知識表達提供了一種很好的解決方案,但有些時候咱們更關注實體的動態變化狀況。

舉例來講,咱們但願知道每部星戰電影中,分別出現了哪些Characters、Planets、Starships、Vehicles和Species,顯然這一答案沒法從知識圖譜中得出,因此接下來藉助時間線進行可視化。

因爲數據並不包含時間戳信息,所以只能展現每一個角色在哪些影片中出現過。

以下圖所示,不一樣的行表明films,不一樣的列表明不一樣的實體,不一樣的顏色表明不一樣的實體類別。

以演員爲例,沒有哪位演員參演過星戰系列的所有電影,但機器人R2-D2貫穿了整個系列。

星戰時間線.jpg

若是你對某個元素感興趣,把鼠標懸停上去,就能夠看到實體名啦!

快去找你喜歡的角色吧。

##37個光頭、19名女性、一個拉高平均體重的胖子##

主角永遠自帶光環,因此咱們又重點研究了一下。

經過Characters的一些統計信息,能夠發如今星戰這個以男性主導的系列裏,只有19名女性。她們平均身高165.8CM、體重56KG,而這個系列裏男性的平均身高是185.8CM、體重83.2KG。

星戰中的女性角色.jpg

固然,星球大戰還有些其餘角色……

整體上看,星戰裏的角色平均身高在174CM,平均體重在97KG,爲何那麼胖?

這實際上是一個異常點(未在圖中顯示)——Jabba Desilijic Tiure,身高僅175cm,體重卻達1358kg,就是他拉高了平均體重,對了,聽說他是雌雄同體~

上張圖大家感覺下:

Jabba Desilijic Tiure.jpg

下圖中你能夠看到相關人物的體重和身高分佈,體重或身高爲-1表示值缺失,也有少數人物性別信息缺失。

人物身高和體重關係.jpg

最後來看下關於Species的統計信息,下圖這張圖展現的是各類族的平均身高和壽命(-1表示缺失值)。

大多數種族壽命在100年之內,有的可達幾百甚至上千年,也有這樣的異常點未顯示在圖中:Droid——人造機器人,壽命爲indefinite。

種族身高和壽命關係.jpg

另外,從這些數據中,還發現87個角色裏,光頭很是流行——頭髮顏色的數據顯示37個NONE(沒有數據是N\A),19個是棕色頭髮。

同時,棕色眼睛在這7部電影裏最受寵,有21個角色擁有棕色眼睛,其次纔是藍色眼睛,有16人。

人物眼睛顏色.jpg

另外,若是你感興趣的話還能夠統計一下,天行者家砍手史(雖然這個並無數據。。。可大家能夠數啊。。。)

##對此我有壞感受##

說了這麼久主角,爲何還要把電影做爲最大的節點,而不是人物呢?

在梳理的各種實體之間的關係時,咱們作了下面這個表,結果……「對此我有壞感受~」,其實只有電影鏈接了全部實體,而不是角色。

節點關係對應.jpg

最後,再來統計一下每部星戰電影中涉及到了多少Characters、Planets、Starships、Vehicles和Species。

以下圖所示,能夠看出Attack of the Clones參演人員最多,The Force Awakens涉及到的各種元素數量都比較少,固然也多是由於數據還沒有徹底整理的緣由。

每部電影涉及實體數量統計.jpg

對於星戰的數據分析遠不止於此,若是你感興趣,甚至你還能夠統計到「對此我有壞感受」在7部影片裏出現了9次。

星戰電影截圖.jpg

Yoda抱怨「黑暗遮蔽了一切,誰也沒法看清未來之事。」

惋惜他不知道數據分析的強大力量,這絕對是一個須要認真考慮的「原力」,可讓你穿透黑暗!

##Star Wars API字段彙總##

  • Film:title、episode_id、opening_crawl、director、producer、release_date、characters、planets、starship、vehicle、species、created、edited、url
  • Characters:name、height、mass、hair_color、skin_color、eye_color、birth_year、gender、homeworld、films、species、vehicle、starships、created、edited、url
  • Planets:name、rotation_period、orbital_period、diameter、climate、gravity、terrain、surface_water、population、residents、films、created、edited、url
  • Starships:name、model、manufacturer、cost_in_credits、length、max_atmosphering_speed、crew、passengers、cargo_capacity、consumables、hyperdrive_rating、MGLT、starship_class、pilots、films、created、edited、url
  • Vehicles:name、model、manufacturer、cost_in_credits、length、max_atmosphering_speed、crew、passengers、cargo_capacity、consumables、vehicle_class、pilots、films、created、edited、url
  • Species:name、classification、designation、average_height、skin_colors、hair_colors、eye_colors、average_lifespan、homeworld、language、people、films、created、edited、url
相關文章
相關標籤/搜索