mcpField
D
data-viz

data-viz

github.com/aladicf设计与 UI564 次安装8 周前更新
代码仓库

关于 data-viz

data-viz 是一项用于制作清晰易懂的数据可视化设计技能,帮助人们理解模式、比较数值并做出决策。它涵盖图表选择、可访问的数据呈现、响应式布局和交互设计。

主要功能

  1. 01按数据关系选择图表
  2. 02提供文本摘要和表格备选
  3. 03规划色盲友好配色
  4. 04适配不同视口尺寸
  5. 05设计图表交互方式

适用场景

  1. 01展示类别间的数值比较
  2. 02呈现时间趋势或数据分布
  3. 03为仪表板规划可访问图表

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aladicf/better-react-web-ui --skill data-viz

安装后在 Claude Code 中输入/data-viz确认已加载。

详细介绍

创建能够阐释数据而非仅作装饰的数据可视化。目标不是让数据看起来引人注目,而是帮助用户理解模式、比较数值并做出决策。

查阅数据可视化参考资料,了解图表类型选择、响应式模式、无障碍数据表、色觉友好型调色板和交互设计。 当语义状态、图表调色板或类别颜色需要在色觉缺陷情况下仍能区分时,请查阅色盲 UX参考资料。 当数据表比图表更合适或可作为图表的补充呈现方式时,请查阅复杂表格 UX参考资料。

必须完成的准备工作

阅读 frontend-design,并遵循其上下文收集协议。重用可用上下文,只针对会产生重大影响的信息缺口提问。此外,还要了解:用户希望通过数据回答什么问题、受众是谁,以及数据是实时更新还是静态数据。

评估可视化需求

选择图表前,先理解数据所讲述的内容:

  1. 用户想要了解什么?

    • 比较不同类别(条形图)
    • 了解随时间变化的趋势(折线图)
    • 展示部分与整体的关系(堆叠条形图或树图,尽量少用饼图)
    • 展示分布或范围(直方图、箱线图、散点图)
    • 展示层级结构(树图、旭日图)
  2. 数据的形态是什么?

    • 数据点数量(少量数值还是数千个)
    • 系列或类别数量(单系列还是多系列)
    • 时间粒度(按日、按月、按年)
    • 数据是连续型还是类别型
  3. 使用场景是什么?

    • 仪表板(快速浏览摘要)还是探索性分析(深度交互)
  • 预期的视口范围、密度需求和主要输入方式
    • 实时更新还是静态报告
    • 无障碍需求(屏幕阅读器、色觉缺陷)

可视化维度

图表选择

根据数据关系选择图表,而不是根据审美偏好选择。

条形图用于比较不同类别的数值。类别名称较长时使用横向条形图。数值轴从零开始。

折线图用于展示随时间变化的趋势。最多使用约 5 条线。尽可能在线条末端直接标注。

散点图用于展示两个变量之间的关系。只有在确实存在相关性时才添加趋势线。标注值得关注的离群点。

直方图用于展示频数分布。当数据的形状(聚类、离散程度、偏斜)很重要时使用。

树图用于展示包含多个类别的层级式部分与整体关系。

避免使用饼图,除非类别很少且有一块明显占主导。即便如此,也优先考虑环形图或堆叠条形图。

无障碍数据呈现

每个图表都必须提供无障碍替代方案。

  • 在可视化内容之前提供主要洞察的文字摘要
  • 提供格式标记正确的数据表作为备用方案(<caption>、<th scope="...">)
  • 使用 aria-describedby 将图表与其摘要关联
  • 确保用户可以通过键盘在数据点之间导航,并能听到数值播报
  • 不要只依赖颜色;应使用图案、纹理或直接标注
色彩策略

在数据可视化中有目的地使用颜色。

  • 顺序色阶:使用同一色相的不同明度表示大小(密度、容量)
  • 发散色阶:使用两种色相和中性色作为中点,表示相对于中心值的偏差(方差、盈亏)
  • 类别色阶:使用差异尽可能明显且亮度一致的色相区分不同组别
  • 避免红绿搭配;改用蓝橙或紫黄搭配
  • 使用色觉模拟器测试调色板
响应式行为

图表必须在不同视口尺寸下保持清晰易读。

  • 在中等尺寸布局中简化图例并旋转标签
  • 考虑在窄屏布局中切换图表类型(改用横向条形图,而非纵向条形图)
  • 利用交互进行补偿:缩放控件、显式显示数值、默认显示摘要视图
  • 在最小宽度下测试截断和换行行为
交互设计
  • 激活图例项以切换系列的可见性
  • 悬停或聚焦时突出显示一个系列,并淡化其他系列
  • 使用画笔或拖动来选择要缩放的时间范围
  • 点击数据点,在面板或相邻视图中显示详细信息
  • 筛选或缩放后提供“重置视图”选项
  • 更新实时图表时避免完整重新渲染;仅为发生变化的元素添加动画

仪表盘设计

仪表盘将多个可视化图表组合在一个一目了然的界面中。

布局原则:

  • 对于从左到右阅读的用户,将最重要的指标放在左上方
  • 通过邻近布局和一致的尺寸,在视觉上将相关图表分组
  • 对所有图表中的相同类别使用一致的配色
  • 留出充足空间;过于密集的仪表盘会让人不堪重负,而非传递信息

交互性:

  • 全局筛选条件(日期范围、类别)应同时更新所有图表
  • 点击图表元素应更新详细信息面板或相关图表
  • 避免在没有明确提示的情况下自动刷新仪表盘;显示“上次更新时间”

反模式

  • 图表垃圾:装饰性的 3D 效果、渐变、阴影和多余网格线会遮挡数据
  • 双纵轴:容易引发误导性比较。请改用并排图表
  • 截断的纵轴:纵轴从非零值开始会夸大差异,造成视觉误导
  • 数据系列过多:包含 10 条以上曲线的图表会变得难以阅读。请分组、筛选或拆分
  • 包含许多扇区的饼图:人眼难以准确感知角度
  • 未加说明的缺失数据:应通过视觉方式区分数据缺口和零值
  • 仅依赖颜色区分:色盲用户无法区分纯粹通过颜色编码的系列
  • 没有静态备用方案的动态图表:自动播放的动画会让需要稳定参考点的用户感到困扰
  • 将工具提示作为唯一数据来源:使用粗指针设备或行动不便的用户可能难以触发工具提示
  • 缺乏上下文的图表:没有比较基准、参照线或单位的数值毫无意义

验证可视化质量

发布前:

  • 图表类型与所展示的数据关系相匹配
  • 条形图的纵轴从零开始
  • 在色觉缺陷的情况下,颜色仍能清晰区分
  • 提供易于访问的数据表作为备用方案
  • 提供关于主要见解的文本摘要
  • 图表在窄视口宽度下仍清晰易读
  • 交互功能支持键盘、粗指针和精确指针
  • 工具提示能提供更精确的信息,而非仅重复已有内容
  • 实时更新不会让用户感到迷失
  • 可视化能够回答具体的用户问题

评论

支持 Markdown