mcpField
D
data-visualization

data-visualization

github.com/dylantarre设计与 UI134589 次安装43 周前更新
代码仓库

关于 data-visualization

为设计师和开发者提供数据可视化动画指南,将迪士尼 12 项动画原则应用于图表、仪表板和信息展示,并给出时序及代码模式。

主要功能

  1. 01将动画原则用于数据图表
  2. 02按信息重要性分阶段呈现
  3. 03平滑插值与数据更新
  4. 04图表类型的时序建议
  5. 05遵循减少动态效果设置

适用场景

  1. 01设计图表数据进入动画
  2. 02制作仪表板状态切换
  3. 03突出异常值或阈值变化
  4. 04为减少动态效果用户提供回退

安装

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

$npx skills add https://github.com/dylantarre/animation-principles --skill data-visualization

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

详细介绍

数据可视化动画

将迪士尼的 12 条动画原则应用于图表、仪表板和信息展示。

快速参考

原则数据可视化中的应用
挤压与拉伸柱形越过目标后回弹、弹性定格
预备动作数据加载前短暂停顿
演出布局依次呈现、建立焦点层级
直线动作与姿势动作流式数据与快照数据
跟随动作与重叠动作元素错峰进入
慢入与慢出平滑插值数值
弧线饼图扫入、流程图
次要动作标签跟随数据点
时间控制入场 300-500ms,更新 200-300ms
夸张突出显著变化
扎实绘图刻度一致、关系清晰
吸引力令人满意的呈现、专业润色

原则应用

挤压与拉伸:柱形可以越过目标高度后回落定格。饼图扇区在悬停时稍微扩展。气泡碰撞时会被挤压。确保总值准确——动画只是过渡效果。

预备动作:数据出现前显示短暂的加载状态。扩展前稍微收缩。计数器快速计数前短暂停顿。让用户为即将出现的信息做好准备。

演出布局:按有意义的顺序呈现数据——最重要的数据优先。突出显示当前活动的数据系列。聚焦时淡化无关元素。用动态效果引导数据叙事。

直线动作与姿势动作:实时流式数据以连续方式动画呈现(直线动作)。仪表板快照在状态之间切换(姿势动作)。根据数据性质选择合适的方式。

跟随动作与重叠动作:数据点错开时间进入。标签在对应数据元素之后定格。先显示网格线,再显示数据。图例稍作延迟后再动画呈现。

慢入与慢出:数值变化平滑过渡——避免突兀跳变。使用 d3.easeCubicInOut 或同等效果。计数器动画先加速再减速。进度条平滑推进至完成。

弧线:饼图从 12 点钟方向顺时针扫入。桑基图沿曲线路径流动。网络图使用力导向弧线。径向图表从中心向外扩展。

次要动作:工具提示跟随数据点移动。数值标签随着柱形增高而递增。坐标轴刻度标记随比例变化而调整。阴影表示数据深度。

时间控制:初始入场:错峰显示,持续 300-500ms。数据更新:200-300ms。悬停状态:100-150ms。筛选器过渡:400-600ms。较慢的节奏有助于理解。

夸张:显著变化值得关注——让异常值脉动或发光。越过阈值时触发强调效果。异常情况使用更明显的动画。不要夸大数据本身。

扎实绘图:动画过程中保持刻度一致。过渡不应扭曲数据关系。保持坐标轴对齐。整个动态过程中都必须维持清晰的视觉层级。

吸引力:数据入场应令人满意。专业且有目的的动态效果能建立信任。避免无谓的动画——每个动态效果都应有助于理解。

代码模式

D3.js
// Staggered bar entry with easing
bars.transition()
    .duration(500)
    .delay((d, i) => i * 50)
    .ease(d3.easeCubicOut)
    .attr("height", d => yScale(d.value))
    .attr("y", d => height - yScale(d.value));

// Smooth data updates
bars.transition()
    .duration(300)
    .ease(d3.easeCubicInOut)
    .attr("height", d => yScale(d.value));
Chart.js
// Animation configuration
options: {
    animation: {
        duration: 500,
        easing: 'easeOutQuart',
        delay: (context) => context.dataIndex * 50
    }
}

数据类型对应的时长

可视化类型入场更新悬停
柱状图错峰显示 400ms300ms100ms
折线图绘制 600ms400ms150ms
饼图扫入 500ms300ms100ms
散点图错峰显示 300ms200ms100ms
仪表板级联显示 500-800ms300ms150ms

无障碍说明

始终尊重 prefers-reduced-motion。数据可视化动画应有助于理解,而不是造成妨碍。为禁用动态效果的用户提供即时状态回退方案。

评论

支持 Markdown