一張heat-map看懂MotoGP正賽成績
利用heat-map將MotoGP正賽成績視覺化之後,選手們的表現就一目瞭然了!
一直以來,我們總是喜歡以「資訊」這個角度,來看待MotoGP賽事,並且以「數據」的方式,呈現一場比賽的過程與結果。
版主的本業是生物醫學領域中的生物資訊學。跟動輒數千萬筆的基因/蛋白質數據、資料庫打交道,正是我們生活的日常。面對這麼龐大的資料,也勢必依賴多元的「視覺化」工具,協助我們從中挖掘有意義的資訊。
因此,我們就來牛刀小試,借用生物資訊學常用的heat-map,完整地呈現一場MotoGP正賽成績,讓我們可以更快速、更清楚地比較選手們的表現。
以2019年MotoGP西班牙Jerez賽事為例
以下我們是在上一篇,根據官方發布的賽事成績 ,做出的兩張折線圖,用來分析與比較前五名選手們的單圈時間,以及選手之間相對的單圈秒差。
這張「累積秒差」比較圖,看的是第2~4名選手與分站冠軍Marc Marquez每一圈的秒差,並隨著比賽的圈數累加。
這張「已排序單圈時間」比較圖,看的是每位選手的單圈時間「分佈」與「趨勢」。
那些「折線圖」看不到的資訊
礙於篇幅,在寫賽評時,我們無法攤開每位選手的成績,逐一地討論。同理,如果把所有選手的成績,依照每一圈的順序作圖,我們看到的,會是一堆上下跳動的曲線。雖然還是能看出在某一圈,選手們誰快誰慢。但是,Y軸單圈時間的範圍,則會被起跑的第一圈拉大,選手在其它圈數的成績差距,就無法清楚的呈現。
當然,我們可以縮小Y軸單圈時間的範圍,或是直接排除第一圈的成績。即便如此,光是前10名選手的成績,就讓人眼花撩亂,更何況是所有選手的成績曲線!
也因此,我們需要更合適的視覺化圖示:heat-map。
Heat-map是什麼?可以吃嗎?
大家都曾經看過這樣的全球溫度分佈圖吧?從字面上來看,heat-map就是熱圖。因為聽起來會讓人聯想成熱搜圖片,所以我們還是稱之為heat-map。
Heat-map的原理很簡單,它其實就是一個矩陣(matrix)!
以上圖為例,這個矩陣就是在這張地圖上,每個地理座標所對應的溫度。當我們將這個矩陣以量化後的顏色表示,透過的顏色變化,同溫層就顯得一目瞭然了。
通常,Heat-map上面會有一個漸呈的色表 (color map)。這就像是一個索引,將矩陣中的數值,從最小到最大依序排列,並分為數個連續的區間,只要是分佈在相同區間的數值,都是以相同的顏色代表。接下來,只要為每個區間上色即可。
上圖中選用的色表,是從紫色到暗紅色的漸呈梯度,代表著全球平均溫度變化的範圍,是在攝氏-50度至30度之間。顏色越偏紫,代表平均溫度越低,反之,越紅溫度越高。
常見的heat-map
在我們的日常生活中,還有哪些heat-map?
下圖是今天中午全台的溫度分佈圖。不過,顏色跟上面的全球平均溫度看起來不太一樣。那是因為中央氣象局所選用的色表,是從淺藍色(冷)到紫色(熱)的漸呈梯度。
除了溫度之外,還有降雨以及紫外線強度,也都是大家都非常關心的heat-map。這裡,我們就不再贅述。
再來則是過年或連假時,大家也非常關注的國道交通路況。可能是因為不同的使用需求,高速公路局所選用的是非連續式色表。只有五種單一而非漸呈的顏色來表示車流速度。
這張圖也是在今天中午截取的,所以大多數的國道與快速道路都是綠油油的通暢。到了過年,可能到處都是紅到發紫了吧?
輕鬆看懂MotoGP正賽成績heat-map
言歸正傳,在對heat-map有了概念之後。接下來,我們將MotoGP的正賽成績以heat-map視覺化,應該就很容易理解了吧?
以2019年MotoGP西班牙Jerez正賽為例,所有選手的單圈時間,是一個23×25 (選手人數×比賽圈數) 的矩陣。理論上,這個矩陣應該有575筆單圈時間紀錄。而實際上,因為有四位選手相繼退賽,所以剩下536筆紀錄。
下圖是我們DIY做的heat-map。圖中的X軸是比賽的圈數,Y軸由上至下是從第1名依序排列到完賽的第19名,再加上四位退賽的選手。我們選用的色表是以深藍(快)到深紅(慢)的漸呈梯度,退賽選手未完成的圈數則是跟背景相同的黑色。
另外,色表上的刻度只有三個,分別是98.0、98.5,以及99.0。這是我們刻意選用的。目的是以98.5秒為基準點,只要是非常接近98.5秒,在heat-map上的顏色會是白色。其餘的單圈時間就如同二分法,越快則越偏藍,反之,越慢則越偏紅。
一眼看過這張heat-map,是不是就一覽無遺了?我們是不是也能立刻看出選手每一圈的速度,而不需要再藉由數字了?
回顧這場Jerez正賽,Marc Marquez又快又穩定的表現,正是在第2圈到第19圈,因為這一段的顏色非白既藍。
相對來說,Alex Rins表現得就不如Marquez來得穩定。在heat-map上,他的速度從第4圈才開始出現藍色,但是在第19圈之前,Rins有四圈是紅色的、相對較慢的98.5秒以上。在未來,Rins若能取得更好的起跑位置、再加強穩定度,他肯定是能大有所為的。
再來是悲情的Fabio,他的車是在第14圈時故障的。但是,從heat-map也很清楚看得出來,他除了在第9、10圈的秒數是高於98.5,其餘在場上的單圈紀錄也非常接近Marquez。
至於其他選手在這場比賽的表現,我們就留給正在閱讀這篇文章的您,自行看圖說故事吧!
同理,我們也如出一轍地做了另一張顯示單圈秒差的heat-map。我們以Marquez每一圈的紀錄為基準,將其餘選手每一圈的成績與Marquez比較。所以,這張heat-map的Y軸,只會看到22位選手的成績。相似地,如果某選手在某圈的成績非常接近Marquez,在heat-map上看到的會是白色。如果比Marquez更快,區塊是藍色的,反之則是紅色。
至於說出這張單圈秒差heat-map裡面的故事,我們也留給正在閱讀這篇文章的您。
圖片來源
1. 中央氣象局
https://www.cwb.gov.tw/V8/C/W/OBS_Temp.html
2. 高速公路即時路況
https://1968.freeway.gov.tw/
3. 維基百科
https://en.wikipedia.org/wiki/Heat_map
========================================================
彙整MotoGP賽事,是一件集合了數據收集、文獻回顧,與資料分析的原創工程,也是一件耗時耗力的工作。如果您喜歡我們的文章,也請您支持我們獨立出版發行的《羅西傳奇》與《感動 Valentino Rossi》,讓我們可以有更充沛的資源,持續生產更深入、更多元的內容。
只有在這裡才買得到:
>>>傳奇羅西 賽道風雲合輯
文字傳記+攝影傳記,讓你讀好讀滿
隨書附贈大型羅西書衣海報