據(jù)可視化避坑:別再用雙Y軸誤導(dǎo)人)
一、背景故事一張圖讓全組相信了一個不存在的因果某次周會一位同事展示了一張雙Y軸折線圖左軸是某工序良率右軸是某臺設(shè)備的顆粒計數(shù)。圖上兩條線看起來幾乎完美地反向運(yùn)動視覺沖擊很強(qiáng)。結(jié)論順理成章顆粒上升導(dǎo)致良率下降建議對該設(shè)備加嚴(yán)清洗頻次。會上沒人質(zhì)疑當(dāng)場就定了行動項(xiàng)。兩周后清洗頻次加嚴(yán)了顆粒數(shù)確實(shí)降下來了但良率沒有任何改善?;仡^做相關(guān)性計算兩個變量的皮爾遜相關(guān)系數(shù)只有負(fù)0.21在樣本量24的情況下p值0.32完全不顯著。那張圖上看到的「強(qiáng)相關(guān)」是把右軸范圍從30到52、左軸范圍從91.0到93.2這樣精心其實(shí)是無意選擇的結(jié)果。這件事的代價不算大就是浪費(fèi)了兩周和一些清洗耗材。但它暴露的問題很典型雙Y軸圖給了作圖者兩個自由參數(shù)兩條軸各自的范圍而這兩個參數(shù)可以讓任意兩組數(shù)據(jù)呈現(xiàn)出任意程度的視覺相關(guān)。換句話說雙Y軸圖能證明的東西本質(zhì)上什么都證明不了。二、技術(shù)原理視覺編碼與雙Y軸的結(jié)構(gòu)性缺陷2.1視覺編碼的精度層級Cleveland和McGill在圖形感知研究中給出了一個被廣泛引用的結(jié)論人對不同視覺通道的定量判斷精度是有明確排序的。從高到低依次是共同基準(zhǔn)線上的位置比如同一坐標(biāo)軸上的點(diǎn)、無共同基準(zhǔn)的位置、長度、角度與斜率、面積、體積、顏色深淺。這個排序是所有圖表選型的基礎(chǔ)。按這個排序推論要比較兩組數(shù)據(jù)的大小關(guān)系把它們放在同一坐標(biāo)軸上共同基準(zhǔn)是最準(zhǔn)確的雙Y軸恰恰破壞了共同基準(zhǔn)把兩組數(shù)據(jù)放在兩個不同的位置系統(tǒng)里讀者的視覺系統(tǒng)仍然會不自覺地按「共同基準(zhǔn)」去解讀于是產(chǎn)生系統(tǒng)性誤判。這不是讀者不專業(yè)是圖表設(shè)計違反了感知規(guī)律。2.2雙Y軸的兩個自由度問題定量地看這個問題。設(shè)左軸顯示變量X范圍是[a1, b1]右軸顯示變量Y范圍是[a2, b2]。兩條曲線在圖上的相對位置和交叉形態(tài)完全由這四個參數(shù)決定。只要調(diào)整右軸的范圍與偏移就可以讓Y曲線相對X曲線上下平移、拉伸壓縮從而制造出「同步」「反向」「領(lǐng)先」「滯后」等任意視覺印象。更麻煩的是絕大多數(shù)繪圖工具默認(rèn)會自動縮放坐標(biāo)軸到數(shù)據(jù)范圍這意味著這兩個自由參數(shù)是被工具隨機(jī)決定的連作圖者自己都不知道自己在暗示什么。所以雙Y軸圖的誤導(dǎo)往往不是惡意的而是無意識的這讓它更危險。2.3另外兩個高頻陷阱第一個是坐標(biāo)軸截斷。把縱軸從0開始改成從91開始0.5個百分點(diǎn)的波動就會被放大成滿屏的劇烈震蕩。截斷本身不一定錯——良率從0開始畫確實(shí)沒有意義——但必須顯式標(biāo)注并且在同一份報告里對同類圖表使用一致的截斷策略否則讀者無法橫向比較。最惡劣的做法是同一頁里A圖截斷B圖不截斷讓A看起來波動巨大而B平穩(wěn)。第二個是用面積或角度編碼定量信息。餅圖用角度、氣泡圖用面積、三維柱狀圖用體積這三者在感知精度排序里都很靠后。人對角度的判斷誤差可以達(dá)到實(shí)際值的20%以上對面積的判斷還會受到形狀影響。工程報表里需要精確比較的場合一律用條形圖長度編碼替代餅圖。餅圖唯一還算合適的場景是展示兩三個類別的粗略占比。圖1左圖用雙Y軸制造了強(qiáng)反向相關(guān)的錯覺右圖對同一組數(shù)據(jù)做z-score標(biāo)準(zhǔn)化后放在同一坐標(biāo)系真實(shí)關(guān)系一目了然。表1常見圖表錯誤、成因與替代方案錯誤類型典型表現(xiàn)為什么誤導(dǎo)推薦替代方案雙Y軸良率與顆粒數(shù)畫在一張圖上兩軸范圍可任意調(diào)制造偽相關(guān)z-score標(biāo)準(zhǔn)化后同軸或上下雙圖共享X軸坐標(biāo)軸截斷未標(biāo)注縱軸從91開始且無提示把微小波動放大為劇烈震蕩顯式標(biāo)注截斷同類圖表用統(tǒng)一范圍餅圖比較多類別8個缺陷類型的占比餅圖角度判斷誤差大無法排序按數(shù)值排序的橫向條形圖三維柱狀圖帶透視效果的立體柱體積編碼加透視失真雙重誤導(dǎo)二維柱狀圖需要第三維時用分面彩虹色階表達(dá)連續(xù)量用紅黃綠藍(lán)表示數(shù)值高低色相無內(nèi)在順序且不色盲友好單色漸變或viridis類感知均勻色階折線圖連接離散類別不同產(chǎn)品型號用折線相連暗示了不存在的連續(xù)關(guān)系柱狀圖或點(diǎn)圖不加連接線三、現(xiàn)狀分析Fab報表里最常見的五類問題第一類是「一圖說三件事」。為了在有限的PPT頁面里塞更多信息一張圖上疊加良率、產(chǎn)量、設(shè)備稼動率三條線配兩條甚至三條Y軸。這類圖在匯報現(xiàn)場幾乎無人能真正讀懂大家看的是匯報者的口頭解釋圖只是背景板。既然如此不如拆成三張小圖。第二類是配色混亂。同一份周報里第3頁用紅色表示良率、第7頁用紅色表示異常數(shù)量讀者的顏色語義記憶被反復(fù)打斷。規(guī)范做法是全報告統(tǒng)一色板每個業(yè)務(wù)概念綁定固定顏色并且這套色板要經(jīng)過色盲模擬檢查。第三類是缺少上下文。一張顯示「本周良率92.3%」的大數(shù)字沒有目標(biāo)值、沒有上周對比、沒有控制限讀者無法判斷這是好還是壞。任何數(shù)字都需要至少一個參照系這是數(shù)據(jù)呈現(xiàn)的最低要求。第四類是精度虛假。把良率寫成92.3417%而實(shí)際樣本量只有200片這個精度在統(tǒng)計上毫無意義反而暗示了一種不存在的確定性。正確做法是按樣本量決定顯示精度并在關(guān)鍵數(shù)字旁給出置信區(qū)間或誤差棒。第五類是圖表與結(jié)論脫節(jié)。圖表標(biāo)題寫「某工序良率趨勢」這只描述了內(nèi)容沒有傳達(dá)結(jié)論。更有效的做法是把結(jié)論寫進(jìn)標(biāo)題「某工序良率連續(xù)三周下滑累計1.8個百分點(diǎn)」。讀者的注意力有限標(biāo)題是唯一能保證被讀到的文字。四、瓶頸問題明知有坑為什么還在跳【原因一】工具默認(rèn)值的引導(dǎo)。Excel、Power BI這類工具把「次坐標(biāo)軸」放在很顯眼的位置一鍵就能加而正確的做法標(biāo)準(zhǔn)化、分面需要多幾步操作。默認(rèn)值的設(shè)計會強(qiáng)烈影響使用者的行為這是產(chǎn)品設(shè)計的問題但代價由數(shù)據(jù)消費(fèi)者承擔(dān)。【原因二】把「信息密度高」當(dāng)成專業(yè)。很多工程師認(rèn)為一張圖承載的信息越多越顯得工作扎實(shí)于是不斷往上疊。實(shí)際上判斷報表質(zhì)量的標(biāo)準(zhǔn)應(yīng)該是「讀者做出正確判斷的速度和準(zhǔn)確率」而不是圖上有多少條線?!驹蛉繀R報場景的激勵扭曲。如果匯報的目標(biāo)是說服而不是呈現(xiàn)事實(shí)那么能制造視覺沖擊的圖表就有了生存土壤。這個問題不能靠技術(shù)解決要靠評審機(jī)制任何用于決策的圖表必須同時提供底層數(shù)據(jù)的獲取路徑讓人能夠復(fù)核?!驹蛩摹咳鄙俳y(tǒng)一模板與審圖環(huán)節(jié)。每個人自己做圖風(fēng)格各異錯誤各異。成熟團(tuán)隊(duì)的做法是提供繪圖函數(shù)庫和報表模板把正確的做法變成默認(rèn)路徑同時在報告發(fā)布前設(shè)一道審圖檢查哪怕只是一張五項(xiàng)清單?!驹蛭濉繘]有人為誤讀負(fù)責(zé)。圖畫錯了導(dǎo)致決策失誤通常追責(zé)到?jīng)Q策者而不是作圖者所以作圖這件事長期缺乏質(zhì)量壓力。改變這一點(diǎn)的辦法是把關(guān)鍵報表的作圖規(guī)范寫進(jìn)流程并在決策失誤復(fù)盤時把「信息呈現(xiàn)是否恰當(dāng)」作為固定檢查項(xiàng)。五、解決方案三種替代方案與實(shí)現(xiàn)要點(diǎn)5.1方案一標(biāo)準(zhǔn)化后同軸對比把兩個量綱不同的變量各自轉(zhuǎn)成z-score減去均值再除以標(biāo)準(zhǔn)差放在同一坐標(biāo)軸上。優(yōu)點(diǎn)是消除了尺度自由度視覺上的接近程度直接反映真實(shí)的相關(guān)程度缺點(diǎn)是縱軸失去了物理意義讀者看不到絕對值。適用場景是探索相關(guān)性、比較變化節(jié)奏不適合需要讀取具體數(shù)值的場合。使用時必須在圖注里說明標(biāo)準(zhǔn)化的口徑與基期。5.2方案二指數(shù)化到共同基期把每個變量的第一個觀測值或某個基期均值定為100后續(xù)值按比例換算。優(yōu)點(diǎn)是縱軸有直觀含義相對基期的百分比變化既能同軸比較又保留了可解釋性。這是財經(jīng)圖表里的標(biāo)準(zhǔn)做法在工程報表里同樣好用特別適合比較不同量綱指標(biāo)的改善幅度。注意基期的選擇要有依據(jù)不能挑一個對自己有利的低點(diǎn)做基期。5.3方案三小倍數(shù)與共享坐標(biāo)軸把多個變量拆成上下排列的多個子圖共享同一條X軸。每個子圖有自己合適的Y軸范圍不存在尺度操縱同時因?yàn)閄軸對齊時間上的對應(yīng)關(guān)系一目了然。這是我最推薦的方案因?yàn)樗瑫r滿足了「保留物理量綱」和「不制造偽相關(guān)」兩個要求。在matplotlib里用subplots配合sharex參數(shù)兩行代碼就能實(shí)現(xiàn)。5.4 matplotlib實(shí)現(xiàn)的六條硬規(guī)范第一建立團(tuán)隊(duì)統(tǒng)一的繪圖函數(shù)庫把配色、字號、網(wǎng)格、邊框樣式封裝成默認(rèn)參數(shù)禁止每人自己調(diào)第二色板固定分類數(shù)據(jù)用離散色板不超過6色連續(xù)數(shù)據(jù)用感知均勻色階如viridis禁止用jet或彩虹色第三所有圖必須有標(biāo)題、軸標(biāo)簽與單位缺一不允許輸出。第四坐標(biāo)軸范圍顯式設(shè)定而非依賴自動縮放同類圖表跨報告保持一致第五涉及推斷的圖必須帶不確定性表達(dá)誤差棒、置信帶或樣本量標(biāo)注第六輸出規(guī)范統(tǒng)一報告用圖DPI不低于150中文字體統(tǒng)一指定避免在不同機(jī)器上出現(xiàn)方塊字。這六條做成代碼里的檢查函數(shù)不滿足就拋異常比寫在文檔里管用得多。六、實(shí)戰(zhàn)案例一次周報改版對象是我們部門的良率周報固定14頁面向工藝、設(shè)備、質(zhì)量三個部門約30人。改版前的問題診斷14頁里有6張雙Y軸圖、3個餅圖其中一個有11個扇區(qū)、4張縱軸截斷但未標(biāo)注的圖、全報告用了17種顏色。第一步做基線測量。設(shè)計了8道判讀題例如「A工序和B工序哪個本周惡化更明顯」「設(shè)備X的異常是否與良率下滑同期發(fā)生」請12位常規(guī)讀者在限定90秒內(nèi)作答。結(jié)果平均正確率62%也就是說關(guān)鍵結(jié)論的誤讀率高達(dá)38%。這個數(shù)字在會上比任何設(shè)計理論都有說服力。第二步定規(guī)范。色板收斂到6色每個業(yè)務(wù)概念綁定固定顏色并做色盲模擬驗(yàn)證雙Y軸全部改為上下分面共享X軸餅圖全部改為排序條形圖所有截斷坐標(biāo)軸加顯式標(biāo)注每張圖的標(biāo)題改寫為結(jié)論式。同時把這些規(guī)范封裝進(jìn)一個內(nèi)部繪圖庫提供七個常用圖表的標(biāo)準(zhǔn)函數(shù)。第三步做遷移。14頁里實(shí)際保留了9頁砍掉的5頁是「有人做但沒人看」的內(nèi)容通過前面的讀者調(diào)研確認(rèn)。頁面減少但信息量沒有減少因?yàn)樵瓉硪粡垐D擠三個變量的現(xiàn)在拆成了分面。這一步的阻力主要來自內(nèi)容被砍的同事解決辦法是把這些內(nèi)容移到可點(diǎn)擊的附錄鏈接里需要的人自己去看。第四步驗(yàn)證。用完全相同的8道判讀題、同樣12位讀者、同樣90秒限時在改版后的周報上重測平均正確率從62%升至93%誤讀率從38%降至7%平均作答時間從87秒降至54秒。另外做了個主觀調(diào)查11位讀者認(rèn)為新版「更容易找到需要的信息」。圖2指數(shù)化到共同基期后三個不同量綱的指標(biāo)可以在同一坐標(biāo)軸上比較縱軸仍保留明確含義不存在尺度操縱空間。表2報表發(fā)布前的審圖檢查清單五分鐘可完成檢查項(xiàng)檢查內(nèi)容不合格表現(xiàn)處理方式共同基準(zhǔn)是否存在雙Y軸或多Y軸兩條以上縱軸改為分面共享X軸或標(biāo)準(zhǔn)化同軸坐標(biāo)軸截斷是否標(biāo)注同類圖是否統(tǒng)一起點(diǎn)非零且無提示加截斷標(biāo)注統(tǒng)一同類圖的軸范圍編碼方式定量比較是否用了角度或面積餅圖、三維柱、氣泡圖改為長度編碼的條形圖顏色語義同一概念是否全報告同色同色表示不同含義套用統(tǒng)一色板做色盲模擬檢查不確定性推斷類結(jié)論是否有誤差表達(dá)只有點(diǎn)估計無區(qū)間補(bǔ)充誤差棒、置信帶或樣本量標(biāo)題結(jié)論標(biāo)題是否傳達(dá)結(jié)論而非僅描述標(biāo)題只寫變量名改寫為一句話結(jié)論含關(guān)鍵數(shù)字七、實(shí)施效果改的是圖省的是決策成本量化效果前面已經(jīng)給出誤讀率從38%降到7%判讀時間縮短38%。換算成實(shí)際價值這份周報每周有30人閱讀每人節(jié)省半分鐘不算什么真正的價值在于避免了因誤讀導(dǎo)致的錯誤行動項(xiàng)。改版后半年內(nèi)周會上因圖表理解分歧引發(fā)的爭論明顯減少會議時長平均縮短了12分鐘。另一個意外收獲是數(shù)據(jù)質(zhì)量問題被暴露出來。改版過程中要給每張圖加樣本量標(biāo)注結(jié)果發(fā)現(xiàn)有三張圖的數(shù)據(jù)源樣本量長期不足某些低產(chǎn)品型號每周只有個位數(shù)批次基于這么小的樣本做趨勢判斷本身就不可靠。這三張圖后來改成了按月匯總??梢暬?guī)范的一個副作用是它會逼著你面對數(shù)據(jù)本身的問題。推廣層面的經(jīng)驗(yàn)是不要試圖靠培訓(xùn)改變習(xí)慣要靠工具。我們提供繪圖函數(shù)庫之后新做的圖自然就符合規(guī)范了因?yàn)檎{(diào)用標(biāo)準(zhǔn)函數(shù)比自己調(diào)參數(shù)省事。規(guī)范文檔發(fā)出去半年真正記住的人不到三成而函數(shù)庫上線一個月八成的新圖表就已經(jīng)是合規(guī)的。讓正確的路徑成為最省力的路徑這是推行任何規(guī)范的通用原則。最后回到雙Y軸。有人會問難道雙Y軸一次都不能用嗎有兩種例外一是兩個變量本身有確定的換算關(guān)系比如攝氏度與華氏度、厚度與折射率乘積此時右軸不是獨(dú)立的自由度二是探索階段自己看數(shù)據(jù)怎么方便怎么來。禁止的是把雙Y軸圖放進(jìn)用于決策的正式報告里因?yàn)樵谀莻€場景下你無法控制讀者會從兩條軸的相對位置里讀出什么。八、常見問題答疑工程落地里最常被追問的幾件事Q1領(lǐng)導(dǎo)就是喜歡看雙Y軸怎么辦不要正面對抗用替換演示。做兩版同樣數(shù)據(jù)的圖一版雙Y軸一版分面共享X軸同時把相關(guān)系數(shù)與p值標(biāo)在圖注里讓對方自己看到視覺印象與統(tǒng)計事實(shí)的差距。多數(shù)情況下一次這樣的對照演示比十次道理管用。如果確實(shí)無法改變至少在雙Y軸圖上把兩條軸的范圍顯式標(biāo)注并注明相關(guān)系數(shù)。Q2matplotlib中文顯示方塊最穩(wěn)妥的解決辦法是什么不要依賴系統(tǒng)默認(rèn)字體顯式指定字體文件路徑。推薦做法是在繪圖庫的初始化函數(shù)里用font_manager加載指定的中文字體文件如SimHei設(shè)置font.family為該字體名同時把a(bǔ)xes.unicode_minus設(shè)為False避免負(fù)號變方塊。把這段初始化代碼封裝進(jìn)團(tuán)隊(duì)繪圖庫所有圖自動生效不要每個腳本各寫一遍。Q3數(shù)據(jù)量很大時折線圖會糊成一團(tuán)怎么處理三種做法。一是降采樣按時間窗口聚合同時保留每個窗口的最大最小值形成范圍帶二是用透明度把線寬調(diào)細(xì)、alpha調(diào)到0.1到0.3讓密集區(qū)域自然形成深淺三是改用二維直方圖或密度圖用顏色表示密度。通常前兩種組合使用效果最好主線畫聚合后的中位數(shù)背景用半透明范圍帶表示分布。Q4報表里到底要不要放Cpk這類復(fù)合指標(biāo)要放但必須配上下文。單獨(dú)一個Cpk等于1.28沒有信息量讀者不知道它是在變好還是變壞、樣本量多少、分布是否正態(tài)。正確做法是給出Cpk的趨勢線、置信區(qū)間、以及底層的直方圖縮略。如果版面有限只能放一個數(shù)字那就放Cpk的變化量而不是絕對值因?yàn)樽兓繉Q策更有指導(dǎo)意義。Q5團(tuán)隊(duì)推行繪圖規(guī)范第一步該做什么先做一次基線測量不要先寫規(guī)范。找8到10個真實(shí)的判讀問題請實(shí)際讀者限時作答統(tǒng)計正確率與耗時。這個數(shù)字是推動改變最有力的證據(jù)也是后續(xù)驗(yàn)收的基準(zhǔn)。有了基線之后再寫規(guī)范、做函數(shù)庫最后用同一套題目復(fù)測。整個過程大概兩到三周比空談設(shè)計原則有效得多。九、配套資料與實(shí)戰(zhàn)工具包本文涉及的腳本、模板、檢查清單已整理成配套資料包均為可直接在工廠落地使用的版本拿到后按自己產(chǎn)線的實(shí)際參數(shù)替換即可不需要從零搭。點(diǎn)擊文章上方「VIP資源」下載區(qū)即可獲取以下5項(xiàng)配套資料持續(xù)更新MES/SPC/EAP/良率實(shí)戰(zhàn)資料團(tuán)隊(duì)級matplotlib繪圖函數(shù)庫含7個標(biāo)準(zhǔn)圖表函數(shù)與中文字體配置統(tǒng)一色板定義文件含色盲模擬驗(yàn)證結(jié)果與色值表報表審圖檢查清單六項(xiàng)五分鐘可完成圖表判讀能力基線測評題庫8道題含評分標(biāo)準(zhǔn)雙Y軸替代方案對照示例集標(biāo)準(zhǔn)化、指數(shù)化、小倍數(shù)三種實(shí)現(xiàn)代碼────────────────────────────────────────本文首發(fā)于博客半導(dǎo)體智能制造| MES工程師實(shí)戰(zhàn)筆記你在自己的產(chǎn)線上遇到過類似情況嗎是怎么處理的歡迎在評論區(qū)留下你的做法我會挑典型問題在后續(xù)文章里展開。標(biāo)簽數(shù)據(jù)可視化| matplotlib |雙Y軸|報表設(shè)計|數(shù)據(jù)分析|工程實(shí)踐