1. 从diagram-design这个标题能读出什么第一次看到diagram-design这个标题我脑子里蹦出来的第一个判断是这不是一个单纯的画图工具而是一套关于如何把复杂信息用图形讲清楚的方法论。很多人一提到画图第一反应是打开某个绘图软件拖几个框、连几条线觉得这就是设计图表了。但真正做过信息可视化的人都知道工具只是最后一步前面还有大量的信息梳理、结构拆解、视觉编码工作这些才是决定一张图能不能用的关键。diagram-design这个词组本身就有两层含义一层是diagram作为名词指的是图表、示意图、流程图这类信息载体另一层是design作为动词强调的是设计过程而非设计结果。把这两层合在一起看它指向的核心问题是如何系统性地设计一张能准确传递信息的图表。这个问题听起来简单但实际操作中我见过太多人在这上面翻车——要么信息堆得太满读者根本抓不住重点要么视觉层级混乱重要的东西被淹没在装饰元素里要么逻辑关系表达错误导致读者产生误解。这篇文章适合谁看如果你平时需要做技术方案图、业务流程梳理图、系统架构图、数据关系图或者你是一个需要经常向别人解释复杂概念的人那这篇内容会对你有直接帮助。我不打算只讲某个具体软件的操作步骤因为工具会过时但设计思维不会。我会从信息结构、视觉编码、布局逻辑、常见陷阱这几个维度把diagram-design这件事拆开来讲清楚。2. 先搞清楚你要画的到底是哪一类图2.1 图表的四种基本类型与适用场景很多人画图效率低根本原因是一开始就没想清楚自己要画的图属于哪一类。不同类型的图设计逻辑完全不同。我习惯把常见的图表分成四类类型核心目的典型场景设计重点流程图表达步骤与顺序业务流程、操作指南方向清晰、分支明确结构图表达层级与组成系统架构、组织关系层级分明、归属清楚关系图表达连接与依赖数据流向、模块耦合连线含义、节点角色对比图表达差异与选择方案对比、优劣分析维度统一、差异突出这四类图的设计逻辑差异很大。流程图的重点是顺序感读者应该能一眼看出从哪里开始、经过哪些步骤、在哪里分叉、最终到哪里结束。结构图的重点是归属感读者要能快速判断某个元素属于哪个层级、哪个模块。关系图的重点是连接感每条线代表什么含义必须明确否则读者会自行脑补出错误的结论。对比图的重点是差异感如果对比维度不统一整张图就失去了意义。我见过一个很典型的错误有人把系统架构图画成了流程图的样子用箭头把各个模块串起来结果读者以为这些模块是顺序执行的。这就是典型的图类型选错导致的信息误传。所以在动手之前先问自己一句我要表达的核心信息是顺序、层级、连接还是差异答案会直接决定你后面所有的设计决策。2.2 为什么大多数人画图之前跳过了最关键的一步我观察到一个普遍现象大多数人拿到一个画图任务后会直接打开工具开始拖拽边画边想。这种做法在画简单图时问题不大但一旦信息量超过十个节点就会陷入混乱——画到一半发现布局不够用或者连线交叉得没法看或者某个重要信息没地方放。正确的做法是在打开工具之前先做一步信息清单。具体来说就是把所有需要出现在图上的信息点列出来然后做三件事归类把信息点按性质分组比如输入类处理类输出类或者前端后端数据层定级区分哪些是核心信息、哪些是辅助信息、哪些是可以省略的细节定关系明确信息点之间是顺序关系、包含关系、依赖关系还是并列关系这一步不需要任何工具一张纸一支笔就够了。但就是这一步能帮你省下后面大量的返工时间。我自己的习惯是信息清单做完之后先用文字把图的逻辑写一遍比如用户提交请求后系统先做身份校验校验通过则进入业务处理校验失败则返回错误提示。这段文字写清楚了图的结构基本也就出来了。提示如果你发现自己用文字都写不清楚逻辑关系那说明你对这个问题的理解还不够透彻这时候画出来的图大概率也是乱的。先把逻辑想清楚再考虑怎么画。3. 视觉编码让图形本身承载信息3.1 形状、颜色、线条各自该承担什么职责图表设计的本质是视觉编码也就是用视觉元素来承载信息。形状、颜色、线条、位置、大小这些都是编码通道。问题在于很多人把所有通道都用上了结果信息反而更乱。我的经验是每个视觉通道只承担一种明确的含义。形状是最基础的编码通道。在大多数图表中不同的形状代表不同类型的实体。比如矩形通常代表处理单元或模块菱形代表判断或决策点圆形代表起点或终点圆柱体代表数据存储。这套约定不是强制的但一旦你选定了某种对应关系就要在全图中保持一致。我见过有人在同一个图里用矩形同时表示模块和数据读者根本分不清哪个是哪个。颜色的使用要克制。很多新手喜欢用五颜六色来区分不同元素结果整张图像个调色盘。我的建议是主色调不超过三种每种颜色对应一个明确的分类维度。比如你可以用蓝色系表示前端相关绿色系表示后端相关灰色表示外部依赖。同一色系内可以用深浅来区分层级但不要引入无关的颜色。另外颜色不要作为唯一的区分手段因为色觉障碍人群可能无法分辨最好同时配合形状或标签。线条的粗细和样式也有讲究。实线通常表示强关系或直接连接虚线表示弱关系或间接连接箭头表示方向性。如果图中有多种关系类型可以用不同的线条样式来区分但同样要控制数量超过三种就容易混淆。3.2 文字标注的取舍什么时候该写什么时候该省文字标注是图表设计中最容易被滥用的元素。我见过很多图每个节点里塞满了文字字号小到需要放大才能看清。这种图的信息密度看似很高但实际上读者根本不会去读那些小字。文字标注的原则是图上只放必要信息详细说明放在图外。什么是必要信息就是读者不看文字就无法理解图意的那些内容。比如一个节点的名称、一个判断的条件、一条连线的含义。至于具体的参数、详细的解释、背景说明这些应该放在图下方的说明文字里或者单独附一份文档。具体操作上我建议每个节点的文字控制在两行以内每行不超过八个字。如果某个节点的信息确实很多可以考虑用编号代替然后在图下方用列表展开说明。比如节点上写步骤3图下方写步骤3对输入数据进行格式校验校验规则包括字段完整性、类型匹配、范围检查。还有一个细节文字的对齐方式。同一层级的节点文字应该保持相同的对齐方式通常是居中对齐。如果有的节点文字左对齐、有的居中、有的右对齐整张图会显得很乱。这个细节很小但对整体观感的影响很大。3.3 一个实操案例把一段文字描述转成图表假设你拿到这样一段描述用户登录时系统先检查账号是否存在如果不存在则提示注册如果存在再检查密码是否正确密码错误超过三次则锁定账号密码正确则生成会话令牌并跳转到首页。这段话的信息点包括用户登录、检查账号、账号不存在、提示注册、检查密码、密码错误、错误次数判断、锁定账号、密码正确、生成令牌、跳转首页。关系类型主要是顺序和分支。按照前面的方法我先归类这是一张流程图核心是表达登录的处理步骤和分支条件。然后定级主流程是检查账号→检查密码→生成令牌→跳转首页分支是账号不存在→提示注册和密码错误→次数判断→锁定账号。最后定关系主流程用实线箭头串联分支用虚线箭头引出。画的时候主流程放在中间垂直排列分支放在右侧水平引出。判断节点用菱形处理节点用矩形起止节点用圆角矩形。颜色上主流程用蓝色异常分支用橙色这样读者一眼就能区分正常路径和异常路径。4. 布局逻辑为什么你的图看起来总是乱4.1 对齐、间距、留白三个被低估的布局要素图表看起来乱十有八九是布局问题而不是内容问题。布局中最关键的三个要素是对齐、间距和留白但恰恰是这三个最容易被忽略。对齐是布局的基础。同一层级的元素应该在一条线上无论是水平对齐还是垂直对齐。人的眼睛对对齐非常敏感哪怕只差几个像素也会让人觉得不对劲。在画图工具里通常都有对齐辅助线功能画的时候一定要打开。如果工具没有这个功能那就手动对齐宁可多花几分钟也不要让元素歪歪扭扭。间距要均匀。同一组元素之间的间距应该一致不同组之间的间距应该明显大于组内间距。这样读者才能通过间距来判断哪些元素是一组的、哪些是分开的。我见过很多图元素之间的间距忽大忽小读者根本分不清分组关系。留白是最容易被忽略的。很多人觉得图上的空白是浪费空间恨不得把每个角落都填满。但实际上留白是帮助读者区分信息区域的重要手段。图上的留白应该占到总面积的百分之三十到四十这样读者才有呼吸空间才能聚焦在核心信息上。4.2 从左到右还是从上到下方向选择的依据图表的方向选择不是随意的它应该符合读者的阅读习惯和信息的逻辑流向。从左到右的布局适合表达时间顺序或因果链条。因为大多数人的阅读习惯是从左到右所以这种布局会让读者自然地按照设计者的意图来阅读。流程图、时序图通常采用这种方向。从上到下的布局适合表达层级关系或优先级。上层代表高层级或高优先级下层代表低层级或低优先级。组织结构图、架构分层图通常采用这种方向。还有一种常见的做法是混合布局主流程从左到右分支从上到下。这种布局在表达复杂流程时很有效但要注意分支的方向要一致不要一会儿向上、一会儿向下否则读者会迷失方向。选择方向的依据很简单信息的逻辑流向是什么图的方向就应该是什么。如果信息本身是循环的那图也应该是循环的布局比如用圆形排列。不要为了好看而强行改变方向那样只会让读者困惑。4.3 连线交叉的处理什么时候可以忍什么时候必须改连线交叉是图表设计中最头疼的问题之一。完全避免交叉在复杂图中几乎不可能但我们可以控制交叉的数量和位置。如果交叉数量少于三条而且交叉角度接近垂直那可以接受。这种交叉对阅读的影响很小读者不会感到困惑。但如果交叉数量超过五条或者交叉角度很小导致线条几乎重叠那就必须调整布局了。调整的方法有几种一是调整节点的位置把关联紧密的节点放在一起二是改变连线的路径用折线代替直线绕开其他元素三是引入连接点或跳线符号表示两条线不相交四是如果关系太复杂考虑拆成多张图。我个人的经验是如果一张图需要超过三次跳线才能理清连线那说明这张图的信息量已经超载了应该考虑拆分。一张好的图读者应该在十秒内理解整体结构三十秒内理解细节关系。如果需要反复追踪连线才能看懂那这张图的设计就是失败的。5. 工具选型不同场景下我用什么5.1 快速草图与正式交付的工具分界工具选型这件事我的原则是草图用轻量工具正式交付用专业工具。不要一上来就用重型工具那样会浪费大量时间在调整样式上而忽略了内容本身。快速草图阶段我通常用纸笔或者最简单的绘图工具。这个阶段的目标是快速验证结构是否合理所以不需要考虑美观。纸笔的好处是没有任何限制想到什么画什么修改也方便。如果需要在电脑上画我会用一些轻量的在线工具拖拽几个框、连几条线几分钟就能出一个草图。正式交付阶段就需要考虑输出质量了。这时候要关注几个指标是否支持矢量输出、是否支持自定义样式、是否支持导出多种格式、是否方便协作。矢量输出很重要因为位图放大会模糊而图表经常需要嵌入文档或演示文稿中不同场景对尺寸的要求不同。5.2 代码生成图表 vs 手动拖拽各自的适用边界这两年代码生成图表的方式越来越流行很多人问我到底该用哪种。我的回答是看场景。手动拖拽适合一次性的图表比如某个项目的架构图、某次汇报的流程图。这种图通常只画一次不需要频繁更新手动拖拽的效率更高而且可以精细控制每个元素的位置和样式。代码生成适合需要频繁更新或需要批量生成的图表。比如你有一个系统模块经常增减如果用代码定义图表结构每次只需要改几行代码就能重新生成整张图不用手动调整布局。另外代码生成的图表天然具有版本控制能力可以追踪每次修改的内容。但代码生成也有明显的局限布局控制不够精细复杂的分支和交叉处理起来很麻烦而且学习成本不低。所以我的建议是如果你的图需要画超过五次或者需要多人协作维护考虑代码生成否则手动拖拽就够了。5.3 导出格式的选择什么时候用矢量什么时候用位图导出格式的选择经常被忽略但它直接影响图表在不同场景下的表现。矢量格式如SVG、PDF适合需要缩放或打印的场景。矢量图放大不会模糊所以适合嵌入文档、演示文稿、印刷品。但矢量图在某些平台上可能显示不正常比如一些网页编辑器对SVG的支持就不太好。位图格式如PNG、JPG适合需要快速分享或嵌入网页的场景。位图的兼容性更好几乎所有平台都能显示。但位图放大会模糊所以导出时要选择足够高的分辨率。我的习惯是导出两倍或三倍分辨率的PNG这样在大多数场景下都够用。还有一个细节如果图表需要后期编辑那最好保留源文件格式。很多工具都有自己的专有格式这种格式只有该工具能打开但保留了所有可编辑信息。所以我的工作流通常是源文件保留一份导出矢量格式一份用于文档导出位图格式一份用于快速分享。6. 那些年我踩过的图表设计坑6.1 信息过载一张图塞进整个系统的后果我早期做过一张系统架构图把当时负责的所有模块都画了进去大概有四十多个节点连线密密麻麻。画完之后我自己都觉得挺有成就感觉得信息很全。结果拿去汇报的时候领导看了十秒钟就说这张图我看不懂你重新画一张只画核心流程。这件事给我的教训很深。图表的价值不在于信息全而在于信息准。一张图能讲清楚一件事就已经很成功了。如果想讲十件事那就画十张图或者画一张总览图加十张细节图。把所有信息塞进一张图结果就是每件事都讲不清楚。后来我给自己定了一个规矩一张图上的节点不超过十五个连线不超过二十条。超过这个数量就考虑拆分。这个规矩帮我避免了很多次信息过载的问题。6.2 逻辑陷阱箭头方向错误导致的误解箭头方向错误是图表设计中的低级错误但它的后果可能很严重。我见过一张数据流向图箭头画反了结果读者以为数据是从下游流向上游的完全理解错了系统的架构。箭头方向错误通常发生在两种情况下一是画的时候没注意随手一拖就画反了二是修改的时候只改了节点位置忘了调整箭头方向。第二种情况更隐蔽因为图看起来没问题但逻辑已经错了。避免这种错误的方法很简单画完之后沿着箭头的方向把整个流程走一遍。从起点开始按照箭头的指向一步一步走到终点看看逻辑是否通顺。如果走到某个节点发现走不通那说明箭头方向或者节点连接有问题。6.3 配色翻车颜色太多、对比度不足、色盲不友好配色是图表设计中最主观的部分但也是最容易翻车的部分。我见过太多辣眼睛的配色方案比如红绿搭配、荧光色堆砌、低对比度的浅色文字。配色翻车主要有三种情况一是颜色太多整张图像个调色盘读者不知道哪种颜色代表什么二是对比度不足文字和背景颜色太接近看不清三是不考虑色觉障碍人群用红绿来区分关键信息。我的配色原则是主色不超过三种对比度要足够关键信息不要只靠颜色区分。具体来说背景用白色或浅灰色文字用深色主色调用蓝色系或灰色系强调色用橙色或红色。如果必须用颜色来区分分类那同时配合形状或标签确保色觉障碍人群也能理解。注意如果你不确定自己的配色是否合适可以做一个简单的测试——把图转成灰度模式看看是否还能区分不同的元素。如果灰度模式下完全分不清那说明你的配色过度依赖颜色了。6.4 字体与字号被忽视的可读性杀手字体和字号是图表设计中最容易被忽视的细节但它直接影响可读性。我见过很多图内容本身很好但字号太小读者需要放大才能看清体验很差。字号的选择要根据图表的最终展示场景来定。如果图表是嵌入文档的字号应该和文档正文字号接近如果是用于演示文稿的字号要更大一些因为观众离屏幕更远如果是用于打印的字号不能小于八磅否则印刷出来看不清。字体方面我建议用无衬线字体比如黑体、思源黑体、Arial。无衬线字体在屏幕上的可读性更好而且看起来更现代。衬线字体适合大段文字阅读但在图表这种信息密集的场景下无衬线字体更合适。还有一个细节同一张图上的字体不要超过两种。标题用一种正文用一种就够了。字体太多会让整张图显得杂乱而且会分散读者的注意力。7. 从需求到交付一个完整的图表设计流程7.1 需求澄清阶段该问自己的四个问题在动手画图之前我通常会问自己四个问题第一个问题这张图是给谁看的不同的读者群体对图表的期待完全不同。给技术人员看的图可以包含更多细节和专业术语给管理层看的图需要突出核心结论和关键指标给外部人员看的图需要更多的背景说明。第二个问题读者看完这张图后应该知道什么这个问题帮你确定图表的核心信息。一张图只能有一个核心信息如果核心信息超过一个那就应该拆成多张图。第三个问题这张图会在什么场景下使用是嵌入文档、用于演示、还是打印张贴不同的使用场景对尺寸、字号、配色、格式的要求都不同。第四个问题这张图需要更新吗如果是一次性的那怎么快怎么来如果需要频繁更新那就要考虑可维护性比如用代码生成或者建立模板。这四个问题看起来简单但能帮你避免大量的返工。我自己的经验是花五分钟想清楚这四个问题能省下后面半小时的修改时间。7.2 结构设计阶段的具体操作步骤结构设计阶段的目标是把信息清单转化成图表的骨架。具体操作分三步第一步确定主流程。把最核心的信息点挑出来按照逻辑顺序排列。这一步不需要考虑布局和样式只需要确定哪些信息必须出现和它们的顺序是什么。第二步添加分支和辅助信息。主流程确定后把分支条件、异常处理、辅助说明这些信息补充进去。注意控制数量分支不要超过三条辅助信息不要超过五条。第三步检查逻辑完整性。沿着主流程走一遍看看每个分支是否都有明确的去向每个判断是否都有对应的处理每个起点是否都有终点。如果发现断头路或者死循环那就说明结构设计有问题需要调整。这三步做完之后你会得到一个纯文字的图结构这时候再打开工具把文字转化成图形效率会高很多。7.3 视觉打磨阶段的检查清单视觉打磨是最后一步也是最耗时的一步。我通常会按照以下清单逐项检查对齐所有同级元素是否对齐有没有歪斜的元素间距同组元素间距是否一致不同组之间是否有明显间隔留白图表四周是否有足够留白信息区域是否过于拥挤颜色主色是否不超过三种对比度是否足够灰度模式下是否可区分字体字体是否不超过两种字号是否清晰可读连线箭头方向是否正确连线交叉是否过多线条样式是否一致标注文字是否简洁是否有错别字标注位置是否清晰这个清单看起来很长但熟练之后检查一遍只需要两三分钟。我建议每次交付之前都过一遍这个清单能避免百分之九十的低级错误。7.4 交付后的反馈收集与迭代图表交付之后工作并没有结束。我通常会做一件事找一两个目标读者让他们看图然后复述图的内容。如果他们复述的内容和我的设计意图一致那说明图是成功的如果出现偏差那就说明某个地方的设计有问题需要调整。这个方法的原理很简单图表是给人看的只有目标读者能看懂图表才有价值。设计者自己看自己的图往往会脑补很多信息觉得这里很明显啊但读者可能完全不这么认为。所以一定要找别人来看收集真实的反馈。反馈收集之后不要急着改。先把反馈分类是结构问题、逻辑问题还是视觉问题结构问题需要重新设计逻辑问题需要调整连线视觉问题只需要微调样式。分类之后按照优先级逐个处理避免改一处、乱一片。8. 进阶思路让图表成为沟通工具而非装饰品8.1 图表在技术文档中的角色定位在技术文档中图表不是装饰品而是沟通工具。一张好的图表能替代大段文字描述让读者快速理解复杂概念。但前提是图表的设计必须服务于沟通目标而不是为了好看而画。我见过很多技术文档图表画得很精美但对理解内容没有帮助。比如一张系统架构图画了各种漂亮的图标和渐变但模块之间的关系完全没有表达清楚。这种图就是装饰品读者看完之后除了觉得挺好看之外什么也没记住。好的技术图表应该做到读者不看正文只看图就能理解核心概念。如果做不到这一点那说明图表的设计还有问题。具体来说图表应该包含三个要素核心概念的可视化、概念之间关系的表达、关键细节的标注。缺了任何一个图表的信息传递能力都会打折扣。8.2 如何用图表讲一个完整的故事图表的高级用法是讲故事。一张好的图表应该像一篇微型文章有开头、有发展、有高潮、有结尾。开头是背景告诉读者这张图要讲什么。通常用一个标题或者一个起始节点来表达。发展是过程展示信息如何从起点流动到终点。高潮是关键转折也就是最重要的那个判断或处理。结尾是结果告诉读者最终得到了什么。用图表讲故事的关键是节奏感。不要把所有信息平铺直叙要有主次、有轻重、有快慢。核心信息用更大的字号、更醒目的颜色、更中心的位置来突出辅助信息用更小的字号、更淡的颜色、更边缘的位置来弱化。这样读者才能按照你设计的节奏来阅读而不是被信息淹没。8.3 从单张图到图表体系一致性原则当你需要画多张图时一致性就变得非常重要。如果每张图的配色、字体、形状含义都不一样读者每看一张图都要重新学习一遍规则体验很差。建立图表体系的关键是设计规范。具体包括配色规范主色、辅助色、强调色、字体规范标题字体、正文字体、字号层级、形状规范不同形状代表什么含义、布局规范方向、间距、留白。这些规范一旦确定所有图表都按照这个规范来画。我自己的做法是做一个图表模板把常用的元素节点、连线、标注都预设好样式画新图的时候直接调用模板这样能保证所有图表的一致性。模板不需要很复杂一个简单的文件就够了但它的价值很大能帮你省下大量的重复劳动。9. 我个人的一些实操心得画了这么多年图表我最大的体会是图表设计的核心不是画而是想。想清楚了画起来很快想不清楚画再多也是白费。另一个体会是不要追求完美的图表要追求有效的图表。完美的图表可能很漂亮但如果读者看不懂那就是失败的。有效的图表可能不那么精致但读者能快速理解那就是成功的。还有一个实用的技巧画完之后把图缩小到百分之五十看一遍。如果缩小之后还能看清整体结构那说明布局是合理的如果缩小之后一片模糊那说明信息密度太高了需要精简。这个技巧帮我发现了很多放大看没问题、缩小看就乱的图表。最后分享一个习惯我会把每次画的图表都存档标注上日期和用途。过一段时间回头看能发现自己设计思路的变化也能积累一些可复用的模板和元素。这个习惯看起来不起眼但长期下来对提升设计能力很有帮助。
阅读完成 · 觉得有帮助?