繪製《乘風2023》數據圖表時的反思(3) — 量化順序的困難

Dennis Tseng
DD Story Hub
Published in
7 min readJun 5, 2023

這篇文談到了想要視覺化呈現資料時,轉化數據的方法、思考排序時的顧慮、想要呈現多個變數的企圖、以及變換圖表的形式。

註:部落格版本在此

本文共分好幾篇,都在講述繪製《乘風2023》數據圖表時遇上的困難與反思。請見第1篇第2篇

當選項很多的時候,要怎麼量化出對於偏好的「優先順序」?又要怎麼在數據圖表中保留這樣的順序,而不只是單純的排序?

問卷中有一道題目請填答者以李克特量表,針對8個舞台排序,但是想將填答結果轉化到圖表上,遇上很大的困難。

《乘風2023》第二次公演的 Chi Pu 戰隊,有龔琳娜、劉雅瑟、Chi Pu 共 3 位成員。截自芒果TV。

延伸閱讀:看《乘風破浪》的夏天:打開浪姐的八百萬種方法

*註:如果你只想看跟《乘風2023》有關的圖表,可以直接去看 IG 上的這篇文章,或是搜尋在 IG 上搜尋 “ddplot”,加上關鍵字 hashtag 也可以。

資料介紹

我在問卷中,請填答者排序第二次公演的 8 個舞台。

  • 請按照喜愛度排序,在二公舞台中,排出1到8名。即使很難分辨好壞,也還請盡力嘗試!
問卷中題目長相。截圖

因為 8 個選項很多,如果不是自己有明確偏好,或者組別中沒有特別喜歡的演出者,其實超過 3 個便很難抉擇,所以才會特別註明,請填答者盡量依照偏好排序。

資料的實際長相如圖所示,包含回答者的序號(reply_id),以及投票者對 8 個舞台的排名。

原始資料長相。截圖。

*括弧內的是 R 語言裡面的函數,因為原文寫在一個 R 語言的部落格,可以略過沒關係。

我用了一些步驟,將資料轉換成長表格(pivot_wider())。

轉換為長表格後的資料長相。截圖。

在跳下去做視覺化之前,Google Form 內建的表單後台有提供可以拿來使用的圖表,在此也附上作為參考。

這張圖表其實有盡可能地呈現排名,只是配色紊亂和舞台之間的排序沒有遵循標準,讓它變得有點難以接受。截圖自 Google Form。

不過,不管資料長相到底如何,關鍵還是在於,要怎麼呈現這 8 個舞台的排序?

第一個問題:資料的重點是什麼?

對設計問卷和填寫問卷的人來說,最想知道的很直觀:「大家如何排序這幾個舞台?」因此,我認為重點會是想辦法呈現出這 8 個舞台的順序

不過,在呈現順序前,首先要先決定順序

第二個問題:如何決定順序?

8 個選項排開,同一場表演既可能拿到第 1 名的選票,也可能拿到第 8 名。

在這個場景之下,我們應該怎麼決定順序?是依照拿到多少張第 1 名的票數?還是有其他更好的方式?

我想到兩個方法。

第一,依照反向名次給予分數。第 8 名給 1 分、第 7 名給 2 分,剩下以此類推。

有許多票選採用這個方法,例如美國籃球殿堂 NBA 的最有價值球員(MVP)票選中,每位投票員有 5 張票。

投票員手上,每張票的價值不同,共有 10、7、5、3、1 ,一共 5 個分數的層級,利用加權的方式表達投票者的偏好

NBA 2022-2023 球季的 MVP 票選細節。取自 NBA 推特

不過,我不確定這個方法是否合適,因為從順序(ordinal)轉成數值(numeric),第 1 名(8分)的表現就會變成第 4 名(4分)的 2 倍、第 8 名(1分)的 8 倍,這也是我們通常不會嘗試量化順序尺度資料的原因。

第二,如實呈現每個選項(舞台)拿到各個名次的比例。

舉例來說,A 舞台拿到 10% 的第 1 名票、20% 的第 2 名票、30% 的第 3 名票、 40% 的第 4 名票,表現優於拿到 50% 的第 1 名票、20% 的第 2 名票、20% 的第 3 名票、 10% 的第 4 名票。

不過,可以想像,為了在圖表中呈現 8 個舞台、每個舞台 8 個名次的數值,會是一件相對困難的事情。

不管是選擇轉為分數,或是如實呈現獲得的票數比例,都可以是好的決定順序方式。

第三個問題:怎麼呈現順序?

既然想好決定順序的方法,接下來,就是呈現順序了。

在第一個辦法中,我使用了長條圖(bar chart)。

如果採用第一個方法,那可以單純地採用長條圖呈現由票數轉化而來的分數。

將票數轉化爲分數後,以長條圖呈現舞台的排序。

這張圖表有什麼問題嗎?除了我懶得上色,還有長條的寬度可以再調整,以及關於座標軸等一些細節問題以外,其實它能夠呈現排序。

不過,我覺得它不夠好。

因為投票者很努力地排出 1–8 名,現在用分數雖然如實呈現了排名結果,但我認為在轉化成分數的時候,這個資訊稍微被稀釋,有點可惜。

因此,在第二個辦法中,我利用堆疊發散長條圖(diverging stacked bar chart)呈現排名的比例。這個圖表聽起來有點複雜,它很擅長呈現李克特量表(Likert scale)的資料。

底下是我利用 R 語言套件 likert 畫出的堆疊發散長條圖。

保留舞台獲得的名字比例,利用 base R 以堆疊發散長條圖呈現舞台的排序。

什麼是李克特量表?它是一種常見於問卷調查中,用來評估填答者對特定觀點或者陳述態度的測量工具。

例如調查人們對執政黨的滿意度(從非常不滿意到非常滿意、例如詢問人們對於「政府應該將稅收運用在弱勢上」的認同程度(從非常不認同到非常認同)。

從圖中可以看到,堆疊發散長條圖的繪製重點:分散、有中點、有正負、用顏色呈現差異

跟一般長條圖不同,它不從 y 軸開始,而是讓長條分散;它有一個中點區分出正負,圖表中的中點是第 4 和 5 名之間,比中點好代表表現佳、比終點不好代表表現差;最後則是用不同色系表示差異,且活用深淺凸顯程度。

我也同時繪製了一個 ggplot 的版本。

保留舞台獲得的名字比例,利用 ggplot 以堆疊發散長條圖呈現舞台的排序。

利用堆疊發散長條圖,我們得知了 1–8 名的比例資訊。相較於上面把排名加權換成分數的長條圖,我認為底下這兩張圖表保留更多資訊,讓讀者有更多詮釋空間。

譬如,《從頭》的第 1 名票數多於《我離開我自己》,但《我離開我自己》第 1–4 名的票數比《從頭》還要多。從我的角度來看,獲得觀眾好評應該不只看第 1 名票數而已。

不過,其他人可能有不同看法,因此使用堆疊發散長條圖就有其必要,它讓讀者掌握更多資訊,但不會難以閱讀。

小結:開往早晨的午夜

整體來說,這次的核心問題在於怎麼決定順序,還有決定順序後如何呈現順序。

其實,這次的兩種圖表中,無論是選擇長條圖,或者利用堆疊發散長條圖,兩者都沒有錯,重點在於想要呈現什麼樣的資訊,以及如何凸顯重點。

我在此的著眼點是讓讀者看到更多,所以沒有選擇簡化後的長條圖,而是用相對複雜的堆疊發散長條圖。

這就是這次的視覺化遇到的問題。接下來如果有其他視覺化上的煩惱,會持續更新。請繼續收看《乘風2023》!

附註:《開往早晨的午夜》是我二公中最喜歡的舞台。嘉倪加油!

--

--

Dennis Tseng
DD Story Hub

現在不是新聞所學生也不算資料分析師了,變成記者。對商業分析、統計、資料視覺化、資料新聞都很有興趣,喜歡寫 R!