[經驗分享]繪製《乘風2023》數據圖表的反思(4) – 當圖表太過擁擠
0Last Updated on 2023-10-05
這篇文談到了想要視覺化呈現資料時,如何量化喜愛程度,並且細拆成不同面向。
本文共分好幾篇,都在講述繪製《乘風2023》數據圖表時遇上的困難與反思。請見第1篇、第2篇、第3篇。
當「喜愛」可以量化,並且細拆成不同面向時,在視覺呈現上需要花更多功夫。本文就是以呈現4個構面為主題,描述製作數據圖表過程中,遇到的困難與反思。
*註:如果你只想看跟《乘風2023》有關的圖表,可以直接去看 IG 上的這篇文章,或是搜尋在 IG 上搜尋 “ddplot”,加上關鍵字 hashtag 也可以。
資料介紹
我在問卷中,請填答者排序第二次公演的 8 個舞台。
- 請針對三公舞台的「____」給出 1 到 5 分。
底線處即代表服裝妝造、舞台設計、音樂表現、肢體表現4個構面,因此共有4題。
這題的回答採用李克特量表的設計,選項從非常不滿意到非常滿意,可以對應到1–5分。
資料的實際長相如圖所示,包含回答者的序號(reply_id),以及舞台(stage_order)、答題者的選擇(rank)、舞台構面(structure)。
得到上述的原始資料後,我先將答題者的選擇轉換成為分數(case_when()),對應到1–5分,接著再加總各個舞台分別於4個構面得到的分數(group_by() + summarize())。
因為純看分數加總,對人類來說沒有意義,例如不知道584分能夠對應到什麼樣的位置,這樣是高還是低,因此我將分數除以有效票數,就可以將總分數還原到平均分數。如此一來,便大功告成。
得到資料後,接下來可以準備視覺化了。
第一個問題:資料的重點是什麼?
在這個舞台構面的題組知前,其實我已經問了2道舞台相關的題目。其一是詢問答題者會將票投給哪一個舞台,每個舞台都有投與不投的選項;其二是詢問答題者會怎麼排序這6個舞台。
既然有了這兩道題,那又何必拆分構面?我的想法是,人類的想法有著高度的隨意性(arbitrary),例如我非常喜歡《蘇州河》這個舞台,理智上我能感受到Ella領銜的《山河圖》、惜君靖姍小美的《歸途有風》表現都優於《蘇州河》,但仍深受觸動,因此在排序時我將它排在第一。
可是,如果將喜愛緻密地拆解,用舞台設計、音樂表現,這種有名目、有細節的指標評分,那我就會半被迫地、較為嚴肅地給予評價,也能從喜好中抽取中比較理性的一面。
所以,對我來說這題想要問的不只是4個構面加起來的總分而已,我真正想要看的是,將舞台表現整體,落實到每個構面之中。
這樣一來,就不能像前面2題一樣,只滿足於呈現總體結果,而要想辦法呈現出每個舞台在4個構面中分別獲得的分數。
第二個問題:如何同時呈現4個構面?
這題是遇到的最大挑戰。
我想要比較舞台的表現差異,其中表現又由4個不同的子構面組成,若想用最常見的長條圖比較,會從7(舞台數量)x 1(表現)直接暴增成7(舞台數量)x 4(表現的4個構面),當初在揣想圖表效果時,立刻將長條圖排除考慮。
雷達圖
接著,我想到了雷達圖(radar chart)。
雷達圖擅長比較多維度的資料,將變數投射到多邊形的每個頂點,代表分數的點點(dot)彼此相連,呈現出小的多邊形。
可以使用單一個多邊形呈現好幾筆資料,也可以如上圖中右上,每筆資料都分別置放在不同的多邊形上。單一多邊形的優勢是可以快速看出差距,但因為重疊,當資料太多時容易混淆;不同多邊形一起看很清楚,可是如果差異小會很難比較。
我很快用R語言中的ggplot2套件,畫出了一版雷達圖。
你可以從圖中發現幾個窘境。
首先,有點看不出來每個舞台的分數差異。這就是我前面講的,因為每個舞台的分數近似,還在同一個多邊形上時還可以理解,分散在圖表中時,就很難發現差異所在。
再來,因為剛好只有4個維度,沒辦法很好地發揮雷達圖的強項,也就是多維度的呈現,4個維度分別佔據90度,反而讓圖表看起來有點死板。
最後,因為舞台有7個,如圖中2列4排會有一個空缺,如果想用3列3排也會有兩個空缺,實在是進退兩難。
看到結果如此,我決定尋覓替代方案,並且讀到一篇寫於2006年,很不錯的文章。由此可見,好的視覺化總是不會過期。
作者和我一樣,同樣遇到使用雷達圖呈現4個維度,發覺結果不太好看的問題,他和朋友討論後提出兩個解方。
這兩個解方其實都是用類表格的圖表,同時呈現4個選項。
上圖是用甜甜圈圖(donut chart)的圈圈粗細展現高低,下圖則是用長條圖的長度表示大小。雖然是兩種常見的圖表,但突破之處在於擺放的位置,恰巧能夠有效地比較差異。
其中,我更喜歡下圖,因為這張類表格的長條圖中,每行的變數都緊密排列,有點像是海浪或者建築物,讓我們一眼望去就能看出彈性、穩定性等不同面向的高與低。
如果回到我的例子,這樣的圖表形式,可以讓讀者知道,「《歸途有風》音樂表現好高!但其他就沒那麼突出了。」
類表格長條圖
所以,我仿照Peltier的做法,做出類表格長條圖。
沒有比較、沒有傷害。在Peltier的圖表中,它的構面有7項,要比較的商品只有4種;在我的圖表中,舞台的構面僅有4項,要比較的舞台卻有7種。
因此,Peltier的圖表優雅且緊密,我的圖表擁擠而扁平。如果翻轉兩個座標軸,會好一點嗎?
從這個角度看,至少視覺上好上許多,我們可以發現服裝妝造的前兩名是誰、能夠辨識出舞台設計上有人一支獨秀。只是,因為分數實在有點相近,所以比較上還是有點困難,另外,我們只能比較構面之內的差異,無法做到同場表演中跨構面的比較。
這簡直是先天不足(7×4),加上後天失調(分數接近)。難道,沒有其他辦法了嗎?
查找更多其他人的解法後,最多的建議似乎是:請循其本。
並排長條圖
所以我請出了一開始就放棄的,最簡單的長條圖。不像上面以類表格的方式呈現,而是單純的並排。
這兩張圖表,都能夠確實地做到上面提的需求:看出單一舞台構面之間的差異,同時又可以比較跨舞台的表現。
最終我選了右邊那張,因為左邊那張圖表中,7個舞台變成了比較的變數,就選項來說這樣太多,超過一般讀者能記憶的極限。
如果只有4個舞台,或許可行,但是選項超過一定門檻時,想要反覆對照圖上的顏色與下方的圖例,會對讀者帶來太高的認知負擔。
對照之下,右邊的圖表中,比較的變數則是構面本身,可以在同一個舞台中左右對照;即使要對比跨舞台,因為整張畫布的空間很大,長條跟著拉長,不像前面的雷達圖沒有太多空間,這邊只要心理投射一條虛擬的線條,就可以對比相隔最遠的《山河圖》和《千里萬里》。
考慮到使用原色可能會讓整體資訊量過大,所以我調整透明度(但這不一定是個好作法,只是個人習慣),並且加上長條的外部框線,還補上構面中排名第一的小標籤,輔助讀者閱讀。
第三個問題:怎麼決定順序?
因為上面的圖表其實已經接近成品,我還沒有交代排序的細節。
這部分很簡單,我加總4個構面的分數後,再依照總分由高排到低,就這樣而已。
第四個問題:什麼才是「正確」的指標?
回顧這次問卷,單就舞台排序,就有3種題目,一種是「投與不投」,一種是排序,一種則是拆解構面後評分。
結果如下圖:
對比結果可以發現,只有《山河圖》穩居第一,包含《歸途有風》、《蘇州河》在內,都有換過位置,更別提其他3個舞台了。(因為性質不同,《將軍》只放在最後一張圖表)
那麼,哪一個指標才正確呢?
最常見的廢話式回答是「沒有正確的指標,端看你想要什麼。」如果只講了這句,那還真的是廢話,所以我想要解釋「為什麼」。
回到當初設計問卷題目的想法,3種題目,其實都有各自的目的。
第一次公演時,其實只有第一道題目:「投與不投」。提出這題是因為想跟現場對照,公演舉辦的長沙當地,也是採用這個投票方法。因此,目的會是比較現場和螢幕前觀眾的喜好差異。
第二次公演時,我增加了第二道題目:排序。提出這題是因為覺得投與不投本身不夠細緻,投票支持某兩個舞台,不代表我對他們的喜好是一樣的,這比較像是一種跨過門檻後就會願意投票的選擇。因此,目的會是想更精確地量化觀眾的喜好。
第三次公演時,我增加了第三道題目:拆解構面後評分。提出這題是因為覺得即使加上排序,有時候也很難清楚說明「喜歡」的理由,A真的比B好嗎?好在哪裡?出於感性選擇其實沒錯,但我也想知道更多細節。因此,目的會是量化表演的不同組成。
這就是為什麼上面會說,「沒有正確的指標,端看你想要什麼。」
小結:蘇州河和歸途有風
整體來說,這次遇到的問題更像是呈現方法上,要怎麼有效地透過圖表,溝通投票結果,所以花上許多時間探索圖表形式。
文章中有稍微提到「畫布」這件事情,但沒有花太多篇幅著墨。
以雷達圖、中間使用的類表格長條圖和最後挑選的並排長條圖來說,箇中差異就是,實際看到資料後,發現前面兩者無法有效傳達意義。
雷達圖和類表格長條圖是不是更適合呈現這種類型資料的圖表?是。但是因為有多達7個舞台,卻僅有4個構面,差異又不夠大,雷達圖看不出細節,類表格長條圖又太擁擠,所以才會選並排長條圖。
雷達圖之所以看不出細節、類表格長條圖之所以太擁擠,都是因為畫布空間所致。選項太多,雷達圖因此太擠,要在2列中塞下7個選項,導致看不清;因為是7×4(列x行),4個構面其實很少,所以每個構面看起來都很寬,反而變成畫布太大了。
回到並排長條圖,因為變成1×28(列x行)個長條,只有1列讓每個長條都足夠修長,28行則讓每個長條都能夠顯德細瘦,恰巧完美地符合要求。
整體來說,這次視覺化遇到的問題也是很有趣的挑戰。接下來如果有其他視覺化上的煩惱,會持續更新。請繼續收看《乘風2023》!
No Comments