計(jì)真正傳遞信息的圖表而非裝飾畫(huà))
1. 從“diagram-design”這個(gè)標(biāo)題說(shuō)起它到底在解決什么問(wèn)題第一次看到“diagram-design”這個(gè)標(biāo)題我腦子里蹦出來(lái)的第一個(gè)念頭是這大概率不是一個(gè)單純的“畫(huà)圖工具”而是一套關(guān)于“如何把復(fù)雜信息用圖形講清楚”的方法論或者項(xiàng)目實(shí)踐。為什么這么說(shuō)因?yàn)椤癲iagram”這個(gè)詞本身指向的是結(jié)構(gòu)化的視覺(jué)表達(dá)而“design”則意味著背后有設(shè)計(jì)決策、有取舍、有目的。兩者拼在一起核心命題就變成了如何設(shè)計(jì)出真正能傳遞信息的圖表而不是只看起來(lái)好看的裝飾畫(huà)。我在過(guò)去十多年里參與過(guò)不少和可視化、信息圖、系統(tǒng)架構(gòu)圖、流程說(shuō)明圖相關(guān)的項(xiàng)目。說(shuō)實(shí)話(huà)大部分人在做圖這件事上踩的坑高度相似要么是信息塞得太滿(mǎn)圖變成了“文字搬家”要么是追求視覺(jué)炫酷結(jié)果讀者看了半天不知道重點(diǎn)在哪要么是圖與圖之間風(fēng)格不統(tǒng)一拼在一起像從不同地方偷來(lái)的素材。而“diagram-design”這個(gè)主題恰恰是沖著這些痛點(diǎn)來(lái)的。它適合誰(shuí)看我的判斷是三類(lèi)人第一類(lèi)是需要頻繁輸出技術(shù)架構(gòu)圖、業(yè)務(wù)流程圖、數(shù)據(jù)流轉(zhuǎn)圖的技術(shù)從業(yè)者第二類(lèi)是做產(chǎn)品文檔、方案匯報(bào)、教學(xué)材料的非設(shè)計(jì)崗人員第三類(lèi)是對(duì)信息可視化有興趣想讓自己的表達(dá)更高效的內(nèi)容創(chuàng)作者。不管你用的是專(zhuān)業(yè)繪圖軟件還是在線(xiàn)協(xié)作白板這套關(guān)于“圖表設(shè)計(jì)”的思路都能直接遷移過(guò)去。這篇文章我會(huì)從整體設(shè)計(jì)思路、核心細(xì)節(jié)拆解、實(shí)操流程、常見(jiàn)問(wèn)題排查幾個(gè)維度展開(kāi)盡量把“為什么這么設(shè)計(jì)”講透而不是只丟一堆結(jié)論。中間會(huì)穿插我自己踩過(guò)的坑和總結(jié)出來(lái)的經(jīng)驗(yàn)希望能讓你在下次動(dòng)手畫(huà)圖之前腦子里先有一張清晰的“設(shè)計(jì)地圖”。2. 內(nèi)容整體設(shè)計(jì)與思路拆解2.1 為什么圖表設(shè)計(jì)不能從“打開(kāi)工具”開(kāi)始很多人做圖的第一反應(yīng)是打開(kāi)某個(gè)繪圖工具然后開(kāi)始拖拽圖形、連線(xiàn)、調(diào)顏色。這個(gè)順序其實(shí)是反的。我在早期做系統(tǒng)架構(gòu)圖的時(shí)候就吃過(guò)這個(gè)虧工具打開(kāi)腦子空空畫(huà)了半小時(shí)發(fā)現(xiàn)結(jié)構(gòu)不對(duì)全部推倒重來(lái)。后來(lái)我總結(jié)出一個(gè)原則——圖表設(shè)計(jì)的第一步永遠(yuǎn)是在紙上或者白板上把信息結(jié)構(gòu)理清楚工具只是最后一步的呈現(xiàn)手段?!癲iagram-design”這個(gè)主題背后隱含的第一個(gè)核心思路就是先做信息架構(gòu)再做視覺(jué)設(shè)計(jì)。信息架構(gòu)解決的是“我要表達(dá)什么、分幾層、誰(shuí)和誰(shuí)有關(guān)系、重點(diǎn)是什么”視覺(jué)設(shè)計(jì)解決的是“用什么形狀、什么顏色、什么布局讓這層結(jié)構(gòu)一眼可見(jiàn)”。這兩件事混在一起做結(jié)果往往是結(jié)構(gòu)被視覺(jué)牽著走最后圖好看但邏輯混亂。舉個(gè)具體的例子。假設(shè)你要畫(huà)一張“用戶(hù)下單到履約完成”的流程圖。如果你先打開(kāi)工具可能會(huì)不自覺(jué)地開(kāi)始畫(huà)方框、加箭頭然后發(fā)現(xiàn)分支太多、線(xiàn)交叉太亂。但如果你先在紙上列出所有節(jié)點(diǎn)瀏覽商品、加入購(gòu)物車(chē)、提交訂單、支付、庫(kù)存鎖定、倉(cāng)庫(kù)揀貨、打包、發(fā)貨、簽收、售后然后再標(biāo)注哪些是主流程、哪些是異常分支、哪些是并行環(huán)節(jié)你就能在動(dòng)工具之前確定這張圖應(yīng)該用“泳道圖”還是“狀態(tài)機(jī)圖”應(yīng)該橫向展開(kāi)還是縱向分層。這個(gè)思路的優(yōu)勢(shì)在于它把返工成本降到了最低。紙上改結(jié)構(gòu)幾乎零成本工具里改結(jié)構(gòu)可能要重新對(duì)齊、重新連線(xiàn)、重新調(diào)樣式。我自己的習(xí)慣是任何一張超過(guò)十個(gè)節(jié)點(diǎn)的圖先在白板上畫(huà)兩版草稿確定信息層級(jí)后再進(jìn)工具。2.2 圖表設(shè)計(jì)的三個(gè)核心原則減法、層級(jí)、一致性在“diagram-design”這個(gè)命題下我總結(jié)出三個(gè)貫穿始終的原則它們決定了最終產(chǎn)出是“專(zhuān)業(yè)”還是“業(yè)余”。第一個(gè)原則是減法。一張圖能承載的信息量是有限的。我見(jiàn)過(guò)太多人試圖在一張圖里塞進(jìn)整個(gè)系統(tǒng)的所有細(xì)節(jié)結(jié)果就是每個(gè)節(jié)點(diǎn)都小得看不清每條線(xiàn)都交叉得像蜘蛛網(wǎng)。減法的意思是一張圖只講一件事。如果信息確實(shí)多就拆成多張圖用“總覽圖局部放大圖”的方式組織。比如畫(huà)微服務(wù)架構(gòu)總覽圖只畫(huà)服務(wù)分組和主要調(diào)用關(guān)系具體的接口參數(shù)、數(shù)據(jù)庫(kù)表結(jié)構(gòu)放到單獨(dú)的詳細(xì)圖里。讀者先看總覽建立全局認(rèn)知再看細(xì)節(jié)深入理解這個(gè)閱讀路徑是符合認(rèn)知規(guī)律的。第二個(gè)原則是層級(jí)。圖表設(shè)計(jì)里的層級(jí)包括視覺(jué)層級(jí)和信息層級(jí)。視覺(jué)層級(jí)靠大小、顏色、粗細(xì)、位置來(lái)區(qū)分信息層級(jí)靠分組、分區(qū)、標(biāo)注來(lái)區(qū)分。兩者必須對(duì)應(yīng)。也就是說(shuō)最重要的信息應(yīng)該在視覺(jué)上最突出次要信息退到背景。我經(jīng)??吹椒蠢粡埩鞒虉D里異常處理分支畫(huà)得比主流程還粗還亮讀者的注意力被錯(cuò)誤地引導(dǎo)了。正確的做法是主流程用深色粗線(xiàn)異常分支用淺色細(xì)線(xiàn)輔助說(shuō)明用灰色小字。第三個(gè)原則是一致性。這個(gè)原則在單張圖里體現(xiàn)為形狀語(yǔ)義統(tǒng)一比如圓角矩形代表操作、菱形代表判斷、圓柱代表存儲(chǔ)在多張圖之間體現(xiàn)為風(fēng)格統(tǒng)一同一套配色、同一套字體、同一套間距規(guī)則。一致性的價(jià)值在于降低讀者的學(xué)習(xí)成本。如果第一張圖里藍(lán)色代表輸入第二張圖里藍(lán)色代表輸出讀者就會(huì)困惑。我在做系列圖的時(shí)候會(huì)先定義一個(gè)“樣式規(guī)范”主色、輔色、警告色、成功色、字體字號(hào)、節(jié)點(diǎn)圓角半徑、連線(xiàn)粗細(xì)全部固定下來(lái)后面所有圖都套這個(gè)規(guī)范。2.3 工具選型背后的邏輯沒(méi)有最好的只有最合適的聊到圖表設(shè)計(jì)繞不開(kāi)工具選型。市面上從專(zhuān)業(yè)級(jí)到輕量級(jí)的選擇很多我不打算列一堆名字而是想分享選型的判斷邏輯。選工具的核心依據(jù)是三個(gè)維度圖的類(lèi)型、協(xié)作需求、輸出場(chǎng)景。圖的類(lèi)型決定了工具的能力邊界。比如畫(huà)系統(tǒng)架構(gòu)圖需要支持分層、分組、自定義圖標(biāo)畫(huà)流程圖需要支持泳道、分支、自動(dòng)布局畫(huà)數(shù)據(jù)圖表需要支持?jǐn)?shù)據(jù)綁定和動(dòng)態(tài)更新。如果一個(gè)工具在這些專(zhuān)項(xiàng)能力上很弱你花在“繞過(guò)工具限制”上的時(shí)間會(huì)遠(yuǎn)超“設(shè)計(jì)本身”的時(shí)間。協(xié)作需求決定了工具的共享方式。如果是個(gè)人一次性輸出本地工具足夠如果是團(tuán)隊(duì)反復(fù)評(píng)審修改在線(xiàn)協(xié)作工具更合適因?yàn)榘姹竟芾砗驮u(píng)論功能能省掉大量溝通成本。輸出場(chǎng)景決定了工具的導(dǎo)出能力。是要嵌入文檔、做成演示文稿、還是打印成海報(bào)不同場(chǎng)景對(duì)分辨率、矢量格式、背景透明度的要求不同。我遇到過(guò)有人用截圖工具導(dǎo)出架構(gòu)圖結(jié)果放到大屏上模糊一片這就是輸出場(chǎng)景沒(méi)考慮清楚。我自己的組合策略是草稿階段用白板工具正式輸出用專(zhuān)業(yè)繪圖工具協(xié)作評(píng)審用在線(xiàn)文檔嵌入。草稿階段追求速度白板工具最靈活正式輸出追求精度和美觀專(zhuān)業(yè)工具的可控性更強(qiáng)協(xié)作評(píng)審追求反饋效率在線(xiàn)文檔的評(píng)論功能最方便。3. 核心細(xì)節(jié)解析與實(shí)操要點(diǎn)3.1 信息分層如何判斷哪些內(nèi)容該進(jìn)圖、哪些該踢出去信息分層是圖表設(shè)計(jì)里最考驗(yàn)判斷力的環(huán)節(jié)。我的經(jīng)驗(yàn)是用“三問(wèn)法”來(lái)篩選信息第一問(wèn)這個(gè)信息是讀者理解主邏輯必須的嗎第二問(wèn)這個(gè)信息如果不放在圖里放在圖注或正文里會(huì)不會(huì)更好第三問(wèn)這個(gè)信息和圖里其他信息是同一抽象層級(jí)嗎第一問(wèn)篩掉的是“錦上添花”的信息。比如畫(huà)一張部署架構(gòu)圖服務(wù)器的具體配置參數(shù)CPU核數(shù)、內(nèi)存大小通常不是理解架構(gòu)必須的除非這張圖的目的就是容量規(guī)劃。第二問(wèn)篩掉的是“適合用文字補(bǔ)充”的信息。比如某個(gè)接口的詳細(xì)字段說(shuō)明放在圖里會(huì)撐爆節(jié)點(diǎn)放在圖注里讀者按需查看更合理。第三問(wèn)篩掉的是“層級(jí)混搭”的信息。比如把“業(yè)務(wù)模塊”和“具體函數(shù)”畫(huà)在同一張圖里讀者會(huì)不知道你的抽象粒度到底是什么。我自己的操作習(xí)慣是先做加法把所有可能相關(guān)的信息列出來(lái)再做減法用三問(wèn)法逐條過(guò)濾最后做排序把留下的信息按重要性分成“核心層、支撐層、補(bǔ)充層”分別對(duì)應(yīng)視覺(jué)上的“主體、輔助、注釋”。3.2 視覺(jué)編碼顏色、形狀、線(xiàn)條的語(yǔ)義化使用視覺(jué)編碼是圖表設(shè)計(jì)的“語(yǔ)言”。用得好讀者看圖如讀文用得亂讀者看圖如解謎。我重點(diǎn)說(shuō)三個(gè)維度。顏色方面我的原則是“一圖不超過(guò)五種顏色且每種顏色有明確語(yǔ)義”。比如藍(lán)色代表輸入/請(qǐng)求綠色代表成功/正常橙色代表警告/異常紅色代表錯(cuò)誤/失敗灰色代表外部系統(tǒng)或背景信息。這個(gè)語(yǔ)義一旦確定全圖甚至全套圖都保持一致。另外要注意色盲友好紅綠搭配對(duì)部分人群不友好可以用藍(lán)橙替代。還有一點(diǎn)容易被忽略顏色的飽和度要控制。高飽和顏色用多了會(huì)視覺(jué)疲勞主體用中飽和輔助用低飽和背景用極低飽和或純灰。形狀方面形狀語(yǔ)義要穩(wěn)定。圓角矩形代表操作或服務(wù)直角矩形代表系統(tǒng)或模塊菱形代表判斷圓柱代表數(shù)據(jù)存儲(chǔ)云形代表外部依賴(lài)人形代表角色。這個(gè)映射關(guān)系一旦建立讀者看到形狀就能預(yù)判內(nèi)容類(lèi)型。我見(jiàn)過(guò)有人同一張圖里用圓角矩形既表示服務(wù)又表示數(shù)據(jù)庫(kù)讀者直接懵掉。線(xiàn)條方面實(shí)線(xiàn)代表強(qiáng)關(guān)系或主流程虛線(xiàn)代表弱關(guān)系或異步調(diào)用粗線(xiàn)代表高頻或關(guān)鍵路徑細(xì)線(xiàn)代表低頻或輔助路徑。箭頭方向要明確雙向箭頭只在確實(shí)雙向依賴(lài)時(shí)使用否則容易造成誤解。線(xiàn)條交叉是難免的但可以通過(guò)調(diào)整節(jié)點(diǎn)位置來(lái)減少交叉。如果交叉實(shí)在避不開(kāi)用“跳線(xiàn)”符號(hào)一條小弧線(xiàn)跨過(guò)另一條線(xiàn)來(lái)區(qū)分比直接十字交叉清晰得多。3.3 布局策略從“能看”到“好讀”的關(guān)鍵一步布局決定了讀者視線(xiàn)的移動(dòng)路徑。好的布局讓讀者順著設(shè)計(jì)者的意圖走差的布局讓讀者像走迷宮。我常用的布局策略有三種。第一種是分層布局適合有明確上下級(jí)關(guān)系的圖比如架構(gòu)圖、組織圖。上層是抽象層下層是具體層層與層之間用對(duì)齊的節(jié)點(diǎn)和垂直連線(xiàn)連接。分層布局的關(guān)鍵是每層的節(jié)點(diǎn)數(shù)量要均衡如果上層三個(gè)節(jié)點(diǎn)、下層二十個(gè)節(jié)點(diǎn)視覺(jué)上會(huì)頭輕腳重。解決辦法是把下層再分組或者把部分下層節(jié)點(diǎn)折疊到“更多”里。第二種是流程布局適合有明確先后順序的圖比如流程圖、時(shí)序圖。主流程從左到右或從上到下分支從主線(xiàn)上下方引出。流程布局的關(guān)鍵是主線(xiàn)要直不要為了避開(kāi)某個(gè)節(jié)點(diǎn)而讓主線(xiàn)拐來(lái)拐去。分支的引出點(diǎn)要統(tǒng)一要么都在節(jié)點(diǎn)右側(cè)要么都在節(jié)點(diǎn)下方不要混著來(lái)。第三種是中心輻射布局適合有一個(gè)核心節(jié)點(diǎn)、多個(gè)周邊節(jié)點(diǎn)的圖比如生態(tài)圖、依賴(lài)關(guān)系圖。核心節(jié)點(diǎn)放中間周邊節(jié)點(diǎn)環(huán)繞分布連線(xiàn)從中心向外輻射。這種布局的關(guān)鍵是周邊節(jié)點(diǎn)的間距要均勻否則視覺(jué)上會(huì)偏向一側(cè)。如果周邊節(jié)點(diǎn)太多可以按類(lèi)別分成幾個(gè)扇區(qū)每個(gè)扇區(qū)用不同顏色區(qū)分。3.4 標(biāo)注與圖注讓圖“自解釋”的細(xì)節(jié)功夫一張專(zhuān)業(yè)的圖應(yīng)該做到“不看正文也能看懂八成”。這八成靠的就是標(biāo)注和圖注。標(biāo)注是直接貼在節(jié)點(diǎn)或連線(xiàn)上的文字圖注是放在圖旁邊或下方的補(bǔ)充說(shuō)明。標(biāo)注的要點(diǎn)是簡(jiǎn)短且位置統(tǒng)一。節(jié)點(diǎn)名稱(chēng)控制在六個(gè)字以?xún)?nèi)超過(guò)就用縮寫(xiě)加圖注解釋。連線(xiàn)的標(biāo)注放在線(xiàn)的中段上方不要壓在線(xiàn)上。如果多條線(xiàn)共用一個(gè)標(biāo)注用括號(hào)或引線(xiàn)歸組。圖注的要點(diǎn)是分層且可掃讀。我通常把圖注分成三塊圖例顏色和形狀的語(yǔ)義說(shuō)明、縮寫(xiě)表圖中出現(xiàn)的縮寫(xiě)全稱(chēng)、補(bǔ)充說(shuō)明圖中放不下但讀者可能需要的背景信息。圖例放在圖的右下角或下方縮寫(xiě)表放在圖例旁邊補(bǔ)充說(shuō)明放在最下方。這樣讀者第一眼看圖第二眼看圖例第三眼看補(bǔ)充閱讀路徑很順。提示圖注的字體要比圖中節(jié)點(diǎn)字體小一到兩個(gè)字號(hào)顏色用中灰這樣既不會(huì)搶主體視覺(jué)又能讓需要的人找到。4. 實(shí)操過(guò)程與核心環(huán)節(jié)實(shí)現(xiàn)4.1 從零開(kāi)始畫(huà)一張系統(tǒng)架構(gòu)圖的完整流程我拿一張“模擬項(xiàng)目X”的系統(tǒng)架構(gòu)圖作為案例把完整流程走一遍。這個(gè)項(xiàng)目是一個(gè)跨平臺(tái)的圖像處理系統(tǒng)包含客戶(hù)端、網(wǎng)關(guān)、業(yè)務(wù)服務(wù)、算法服務(wù)、存儲(chǔ)層幾個(gè)部分。第一步明確圖的用途和讀者。這張圖是給新加入項(xiàng)目的開(kāi)發(fā)者看的目的是讓他們?cè)诎胄r(shí)內(nèi)理解系統(tǒng)的整體結(jié)構(gòu)和主要數(shù)據(jù)流向。讀者是有技術(shù)背景但不熟悉本項(xiàng)目的人。這個(gè)定位決定了圖的信息密度不能太淺否則老手覺(jué)得沒(méi)信息也不能太深否則新手看不懂。第二步列出所有需要出現(xiàn)的元素。我在白板上列出了客戶(hù)端移動(dòng)端、桌面端、接入網(wǎng)關(guān)、用戶(hù)服務(wù)、任務(wù)服務(wù)、圖像處理服務(wù)、算法調(diào)度服務(wù)、對(duì)象存儲(chǔ)、元數(shù)據(jù)庫(kù)、消息隊(duì)列。然后標(biāo)注它們之間的關(guān)系客戶(hù)端通過(guò)網(wǎng)關(guān)調(diào)用用戶(hù)服務(wù)和任務(wù)服務(wù)任務(wù)服務(wù)把任務(wù)寫(xiě)入消息隊(duì)列圖像處理服務(wù)從消息隊(duì)列消費(fèi)任務(wù)調(diào)用算法調(diào)度服務(wù)把結(jié)果寫(xiě)入對(duì)象存儲(chǔ)把元數(shù)據(jù)寫(xiě)入元數(shù)據(jù)庫(kù)。第三步確定分層結(jié)構(gòu)。我決定分四層接入層客戶(hù)端網(wǎng)關(guān)、業(yè)務(wù)層用戶(hù)服務(wù)任務(wù)服務(wù)、計(jì)算層圖像處理服務(wù)算法調(diào)度服務(wù)、存儲(chǔ)層對(duì)象存儲(chǔ)元數(shù)據(jù)庫(kù)消息隊(duì)列。消息隊(duì)列雖然邏輯上屬于中間件但在這個(gè)場(chǎng)景里它主要承擔(dān)任務(wù)緩沖放在計(jì)算層和業(yè)務(wù)層之間更直觀。第四步選擇布局方式。四層結(jié)構(gòu)適合縱向分層布局從上到下依次是接入層、業(yè)務(wù)層、計(jì)算層、存儲(chǔ)層。每層內(nèi)部節(jié)點(diǎn)橫向排列層與層之間用垂直連線(xiàn)。消息隊(duì)列放在業(yè)務(wù)層和計(jì)算層之間的右側(cè)用虛線(xiàn)連接到任務(wù)服務(wù)和圖像處理服務(wù)。第五步定義視覺(jué)規(guī)范。接入層用淺藍(lán)色業(yè)務(wù)層用中藍(lán)色計(jì)算層用深藍(lán)色存儲(chǔ)層用灰色。服務(wù)節(jié)點(diǎn)用圓角矩形存儲(chǔ)節(jié)點(diǎn)用圓柱消息隊(duì)列用帶箭頭的矩形。主調(diào)用線(xiàn)用實(shí)線(xiàn)異步消息用虛線(xiàn)。字體統(tǒng)一用無(wú)襯線(xiàn)體節(jié)點(diǎn)名稱(chēng)14號(hào)圖注12號(hào)。第六步進(jìn)工具繪制。我用的是支持分層和自動(dòng)對(duì)齊的專(zhuān)業(yè)繪圖工具。先畫(huà)四個(gè)橫向的“層容器”然后在每個(gè)容器里放節(jié)點(diǎn)。節(jié)點(diǎn)之間用正交連線(xiàn)只有水平和垂直段避免斜線(xiàn)。連線(xiàn)交叉的地方用跳線(xiàn)符號(hào)。所有節(jié)點(diǎn)對(duì)齊到網(wǎng)格間距統(tǒng)一為20像素。第七步加標(biāo)注和圖注。每個(gè)節(jié)點(diǎn)下方用小字標(biāo)注技術(shù)棧比如“用戶(hù)服務(wù)Java MySQL”。圖例放在右下角說(shuō)明顏色和形狀的語(yǔ)義。補(bǔ)充說(shuō)明放在最下方解釋消息隊(duì)列的異步解耦作用。第八步導(dǎo)出和檢查。導(dǎo)出為SVG矢量格式嵌入文檔。檢查項(xiàng)包括所有連線(xiàn)是否閉合、所有節(jié)點(diǎn)是否有名稱(chēng)、顏色語(yǔ)義是否一致、圖注是否完整、在100%縮放下文字是否清晰。4.2 參數(shù)計(jì)算節(jié)點(diǎn)間距和畫(huà)布尺寸怎么定圖表設(shè)計(jì)里有一些可以量化的參數(shù)定好了能省很多調(diào)整時(shí)間。我分享幾個(gè)常用的計(jì)算邏輯。節(jié)點(diǎn)間距。橫向間距通常取節(jié)點(diǎn)寬度的0.3到0.5倍。比如節(jié)點(diǎn)寬度120像素橫向間距取40到60像素??v向間距取節(jié)點(diǎn)高度的0.5到0.8倍。比如節(jié)點(diǎn)高度60像素縱向間距取30到48像素。這個(gè)比例能讓圖看起來(lái)不擁擠也不松散。如果是分層布局層與層之間的間距取節(jié)點(diǎn)高度的1.5到2倍給連線(xiàn)留出足夠的垂直段。畫(huà)布尺寸。畫(huà)布寬度取決于每層最多節(jié)點(diǎn)數(shù)和節(jié)點(diǎn)寬度。公式是畫(huà)布寬度 節(jié)點(diǎn)數(shù) × 節(jié)點(diǎn)寬度 (節(jié)點(diǎn)數(shù) - 1) × 橫向間距 左右邊距。比如一層有5個(gè)節(jié)點(diǎn)每個(gè)寬120像素間距50像素左右邊距各40像素畫(huà)布寬度 5×120 4×50 80 880像素。畫(huà)布高度 層數(shù) × 層高 (層數(shù) - 1) × 層間距 上下邊距。層高取節(jié)點(diǎn)高度加標(biāo)注高度比如602080像素。字號(hào)選擇。如果圖要嵌入A4文檔節(jié)點(diǎn)名稱(chēng)字號(hào)不小于12號(hào)圖注不小于10號(hào)。如果圖要投影到大屏節(jié)點(diǎn)名稱(chēng)字號(hào)不小于18號(hào)圖注不小于14號(hào)。如果圖要打印成海報(bào)按最終尺寸等比放大保證在正常觀看距離下文字高度不小于3毫米。注意這些參數(shù)是起點(diǎn)不是終點(diǎn)。實(shí)際繪制時(shí)根據(jù)視覺(jué)效果微調(diào)但調(diào)整幅度不要超過(guò)20%否則會(huì)破壞整體節(jié)奏。4.3 配色方案的落地方法配色是很多人頭疼的問(wèn)題。我有一套自己的落地方法不需要設(shè)計(jì)背景也能操作。第一步定主色。主色通常來(lái)自項(xiàng)目品牌色或行業(yè)慣用色。比如技術(shù)架構(gòu)圖常用藍(lán)色系因?yàn)樗{(lán)色傳達(dá)穩(wěn)定、專(zhuān)業(yè)的感覺(jué)。如果沒(méi)有品牌色約束我推薦用中飽和度的藍(lán)、綠、紫作為主色候選。第二步生成色階。在主色基礎(chǔ)上調(diào)整明度和飽和度生成三到四個(gè)色階。比如主色是#3B82F6淺色階是#93C5FD中色階是#3B82F6深色階是#1D4ED8。淺色用于背景或次要元素中色用于主體深色用于強(qiáng)調(diào)。第三步定輔助色。輔助色用于區(qū)分不同類(lèi)別或表示狀態(tài)。我通常選一個(gè)暖色橙色或紅色作為警告/異常色一個(gè)綠色作為成功/正常色一個(gè)灰色作為中性/外部色。輔助色的飽和度要比主色低一檔避免搶視覺(jué)。第四步檢查對(duì)比度。文字顏色和背景顏色的對(duì)比度要足夠。深色文字配淺色背景或者淺色文字配深色背景。對(duì)比度太低會(huì)導(dǎo)致閱讀困難。可以用在線(xiàn)的對(duì)比度檢查工具驗(yàn)證目標(biāo)是對(duì)比度比值不低于4.5:1。第五步做色盲模擬。用工具模擬紅綠色盲、藍(lán)黃色盲的視覺(jué)效果確保關(guān)鍵信息不依賴(lài)單一顏色區(qū)分。如果發(fā)現(xiàn)某些顏色在色盲模擬下難以區(qū)分就調(diào)整明度或增加形狀/紋理輔助。4.4 從單張圖到系列圖的擴(kuò)展實(shí)際工作中單張圖往往不夠需要一套圖。這時(shí)候一致性就變得特別重要。我的做法是建立一個(gè)“樣式母版”。樣式母版包含畫(huà)布尺寸、邊距、網(wǎng)格間距、節(jié)點(diǎn)形狀和尺寸、連線(xiàn)樣式、字體字號(hào)、配色方案、圖例位置、圖注格式。每次畫(huà)新圖時(shí)先復(fù)制母版再在母版基礎(chǔ)上增刪節(jié)點(diǎn)。這樣出來(lái)的系列圖風(fēng)格天然統(tǒng)一。系列圖的組織方式也有講究。我通常用“總-分”結(jié)構(gòu)第一張是總覽圖展示整體結(jié)構(gòu)和主要模塊后面幾張是分圖每張深入一個(gè)模塊??傆[圖里的每個(gè)模塊用編號(hào)標(biāo)注分圖的標(biāo)題對(duì)應(yīng)編號(hào)。讀者看總覽時(shí)知道有哪些模塊看分圖時(shí)知道當(dāng)前在哪個(gè)模塊。如果系列圖超過(guò)五張我會(huì)加一張“導(dǎo)航圖”用縮略圖的方式展示所有圖的關(guān)系和閱讀順序。導(dǎo)航圖不追求細(xì)節(jié)只追求讓讀者知道“我現(xiàn)在在哪、接下來(lái)看什么”。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 圖太亂怎么辦從“蜘蛛網(wǎng)”到“清晰圖”的排查清單圖太亂是最高頻的問(wèn)題。我整理了一個(gè)排查清單按優(yōu)先級(jí)從高到低檢查。問(wèn)題現(xiàn)象可能原因排查方法解決技巧連線(xiàn)交叉嚴(yán)重節(jié)點(diǎn)位置不合理檢查是否有節(jié)點(diǎn)可以換位減少交叉用分層布局把關(guān)聯(lián)節(jié)點(diǎn)放在相鄰層視覺(jué)焦點(diǎn)分散顏色和大小沒(méi)有層級(jí)檢查是否所有節(jié)點(diǎn)一樣大、一樣亮主體節(jié)點(diǎn)放大加粗次要節(jié)點(diǎn)縮小變灰信息過(guò)載節(jié)點(diǎn)太多或標(biāo)注太長(zhǎng)數(shù)一下節(jié)點(diǎn)數(shù)和每節(jié)點(diǎn)字?jǐn)?shù)拆圖或把詳細(xì)說(shuō)明移到圖注閱讀路徑混亂布局方向不統(tǒng)一檢查視線(xiàn)是否被迫來(lái)回跳統(tǒng)一從左到右或從上到下風(fēng)格不統(tǒng)一形狀和顏色語(yǔ)義混亂檢查同類(lèi)信息是否用了不同視覺(jué)建立樣式規(guī)范全圖套用我自己的經(jīng)驗(yàn)是一張圖如果超過(guò)十五個(gè)節(jié)點(diǎn)就要考慮拆圖。如果連線(xiàn)交叉超過(guò)五處就要重新布局。如果讀者需要超過(guò)三十秒才能找到主流程就說(shuō)明視覺(jué)層級(jí)沒(méi)做好。5.2 導(dǎo)出后模糊或變形輸出環(huán)節(jié)的避坑指南導(dǎo)出環(huán)節(jié)的坑往往在最后一步才暴露特別讓人抓狂。我遇到過(guò)幾種典型情況。情況一導(dǎo)出位圖后放大模糊。原因是位圖分辨率不夠。解決辦法是導(dǎo)出矢量格式SVG、PDF或者導(dǎo)出位圖時(shí)把分辨率設(shè)到300dpi以上。如果工具只支持位圖導(dǎo)出就把畫(huà)布尺寸設(shè)大導(dǎo)出后再縮小使用。情況二導(dǎo)出后字體變了。原因是目標(biāo)環(huán)境沒(méi)有安裝圖中使用的字體。解決辦法是導(dǎo)出時(shí)把文字轉(zhuǎn)成輪廓曲線(xiàn)或者使用系統(tǒng)通用字體如無(wú)襯線(xiàn)體。轉(zhuǎn)輪廓的缺點(diǎn)是文字不可編輯所以保留一份可編輯的源文件很重要。情況三導(dǎo)出后顏色偏差。原因是色彩空間不一致。屏幕顯示用RGB打印用CMYK。如果圖要打印導(dǎo)出時(shí)選CMYK模式并檢查顏色是否在打印色域內(nèi)。如果圖只在屏幕上看保持RGB即可。情況四導(dǎo)出后背景透明但顯示為黑色。原因是某些查看器不支持透明背景。解決辦法是導(dǎo)出時(shí)加白色背景或者在查看器里設(shè)置背景色。提示導(dǎo)出前先做一次“預(yù)覽導(dǎo)出”用目標(biāo)環(huán)境打開(kāi)檢查確認(rèn)無(wú)誤后再批量導(dǎo)出。5.3 協(xié)作評(píng)審時(shí)的溝通技巧圖表設(shè)計(jì)很少是一個(gè)人的事通常需要評(píng)審和修改。協(xié)作評(píng)審的效率取決于溝通方式。技巧一標(biāo)注版本號(hào)。每次修改后在圖角標(biāo)注版本號(hào)和日期比如“v1.2 2025-03-15”。這樣評(píng)審時(shí)大家說(shuō)的是同一個(gè)版本避免“你看的是舊版”這種扯皮。技巧二用評(píng)論而不是改圖。評(píng)審階段評(píng)審人用評(píng)論功能指出問(wèn)題設(shè)計(jì)者統(tǒng)一修改。如果評(píng)審人直接改圖容易造成版本混亂。在線(xiàn)協(xié)作工具通常支持評(píng)論和提醒用起來(lái)很方便。技巧三區(qū)分“必須改”和“建議改”。評(píng)審意見(jiàn)分兩類(lèi)一類(lèi)是邏輯錯(cuò)誤或信息缺失必須改另一類(lèi)是風(fēng)格偏好可以討論。我在收集意見(jiàn)時(shí)會(huì)標(biāo)注優(yōu)先級(jí)避免在細(xì)節(jié)上反復(fù)拉扯。技巧四改完回復(fù)評(píng)論。每條評(píng)論修改后回復(fù)說(shuō)明改了什么或?yàn)槭裁床桓?。這樣評(píng)審人知道自己的意見(jiàn)被處理了也方便追溯決策過(guò)程。5.4 常見(jiàn)問(wèn)題速查表問(wèn)題快速排查解決方向圖打開(kāi)很卡節(jié)點(diǎn)和連線(xiàn)數(shù)量是否過(guò)多拆圖或簡(jiǎn)化連線(xiàn)無(wú)法對(duì)齊是否開(kāi)啟了網(wǎng)格吸附開(kāi)啟網(wǎng)格和對(duì)齊輔助顏色看起來(lái)臟是否用了高飽和多色混搭降低飽和度統(tǒng)一色系文字被遮擋節(jié)點(diǎn)尺寸是否小于文字放大節(jié)點(diǎn)或縮小字號(hào)圖在不同設(shè)備顯示不一致是否用了非通用字體換通用字體或轉(zhuǎn)輪廓打印后顏色變暗是否用了RGB導(dǎo)出改用CMYK導(dǎo)出圖注和圖例位置混亂是否每張圖位置不同固定圖例在右下圖注在下方系列圖風(fēng)格跳躍是否每張圖重新配色建立樣式母版統(tǒng)一套用6. 我個(gè)人的實(shí)操心得與進(jìn)階建議6.1 三個(gè)讓我少走彎路的習(xí)慣第一個(gè)習(xí)慣是先畫(huà)草稿再開(kāi)工具。這個(gè)習(xí)慣幫我省下的返工時(shí)間保守估計(jì)占全部繪圖時(shí)間的三成以上。草稿不需要好看只需要把節(jié)點(diǎn)和關(guān)系畫(huà)清楚。我通常用白板或紙筆畫(huà)完后拍照存檔作為后續(xù)修改的參考。第二個(gè)習(xí)慣是建立個(gè)人樣式庫(kù)。我把常用的節(jié)點(diǎn)形狀、配色方案、圖例模板、圖注格式整理成一個(gè)文件每次畫(huà)新圖時(shí)直接復(fù)制。這個(gè)樣式庫(kù)隨著項(xiàng)目積累越來(lái)越豐富現(xiàn)在畫(huà)一張標(biāo)準(zhǔn)架構(gòu)圖的時(shí)間比三年前縮短了一半。第三個(gè)習(xí)慣是導(dǎo)出前做“陌生人測(cè)試”。找一位不熟悉項(xiàng)目的同事看圖問(wèn)他三個(gè)問(wèn)題這張圖在講什么主流程是什么哪個(gè)部分最重要如果他能在一分鐘內(nèi)答對(duì)說(shuō)明圖的信息傳達(dá)是有效的如果他答錯(cuò)或答不上來(lái)說(shuō)明還有優(yōu)化空間。6.2 圖表設(shè)計(jì)的進(jìn)階方向如果你已經(jīng)掌握了基礎(chǔ)想進(jìn)一步提升我建議從三個(gè)方向深入。方向一動(dòng)態(tài)圖表。靜態(tài)圖只能展示一個(gè)狀態(tài)動(dòng)態(tài)圖可以展示變化過(guò)程。比如用動(dòng)畫(huà)展示數(shù)據(jù)流動(dòng)、用交互展示不同層級(jí)的細(xì)節(jié)。這需要學(xué)習(xí)一些可視化庫(kù)或交互工具但效果提升很明顯。方向二數(shù)據(jù)驅(qū)動(dòng)圖表。把圖表和數(shù)據(jù)源綁定數(shù)據(jù)更新時(shí)圖表自動(dòng)更新。這在監(jiān)控面板、實(shí)時(shí)報(bào)表場(chǎng)景里特別有用。需要學(xué)習(xí)數(shù)據(jù)綁定和模板語(yǔ)法。方向三圖表系統(tǒng)化。不只是畫(huà)單張圖而是建立一套圖表規(guī)范、模板庫(kù)、評(píng)審流程讓團(tuán)隊(duì)所有人都能產(chǎn)出風(fēng)格一致的圖。這需要從“設(shè)計(jì)者”轉(zhuǎn)變?yōu)椤耙?guī)范制定者”視角更高價(jià)值也更大。6.3 最后分享一個(gè)小技巧如果你覺(jué)得一張圖怎么調(diào)都不順眼試試把它旋轉(zhuǎn)90度或者鏡像翻轉(zhuǎn)再看。這個(gè)動(dòng)作會(huì)打破你原有的視覺(jué)慣性讓你以新的視角審視布局和層級(jí)。我有好幾次卡殼的時(shí)候用這個(gè)方法發(fā)現(xiàn)了之前沒(méi)注意到的問(wèn)題比如左右重量不平衡、閱讀路徑繞遠(yuǎn)、某個(gè)節(jié)點(diǎn)位置突兀。調(diào)整完之后再轉(zhuǎn)回來(lái)往往就順了。另外如果你用的是支持“大綱視圖”的工具試試在大綱視圖里檢查信息層級(jí)。大綱視圖把圖變成純文本的樹(shù)狀結(jié)構(gòu)能幫你快速發(fā)現(xiàn)層級(jí)混亂或信息冗余。圖好看不好看是其次結(jié)構(gòu)清晰才是根本。