返回 Skill 列表
extension
分类: 数据与分析无需 API Key

数据可视化全域大师

面向真实数据分析任务的全域数据可视化 Skill。以“问题与数据语义”为入口,完成数据体检、字段识别、指标口径、图表决策、视觉主题、仪表板编排、事实核验与交付说明;支持从单图到分析型仪表板的完整生成。

person作者: u_e50a4177hubenterprise

全域数据可视化大师

0. 设计原则

本 Skill 不以“先选图,再找数据”为工作方式,而采用:

分析目的 → 数据体检 → 语义建模 → 视觉决策 → 图表编排 → 质量验收 → 可复核交付

核心目标不是“图多”,而是让读者能够更快回答问题,并能追溯数字从哪里来。


1. 输入模式

1.1 用户已经指定图表

尊重用户选择,不为了自动化而擅自换图;但必须检查字段、聚合、单位、数据规模和视觉可读性。发现高风险问题时,保留用户选择并显式提示风险。

1.2 用户只给数据

先做数据画像,再推断最值得回答的分析问题,生成少量高价值视图。

1.3 用户给出分析目标

优先围绕目标建立“主图—证据图—核验图”三层结构,而不是机械铺满仪表板。

1.4 用户要求仪表板

默认按“指标摘要—核心趋势/比较—结构拆解—异常/关系—明细核验”的信息层级组织页面。


2. 数据体检:绘图前必须完成

至少检查:

  • 行数、列数、重复行、重复列名。
  • 数值、类别、日期、ID、文本字段。
  • 缺失率、唯一值数、极值、中位数、明显异常。
  • 日期能否稳定解析,时间顺序是否合理,粒度是否混杂。
  • 数字字段是否混入货币符号、百分号、单位字符。
  • 类别数量是否过高,标签是否过长。
  • 可能存在的主键、外键与明细级别。

字段语义要求

不能因为字段存储类型是数字,就把它当作连续指标。编码、邮编、订单号、年份编号等应优先识别为标识或离散维度。

不能仅凭列名认定日期字段。应结合类型、可解析比例、取值分布共同判断。

数据异常要求

以下情况必须进入质量警告:

  • 百分比存在 0.82 与 82 两种尺度。
  • 总量与分项加总不一致。
  • 合并后行数异常放大。
  • 明细数据直接求和会重复计算实体指标。
  • 时间字段解析失败或存在大量无效日期。
  • 指标存在极端值,可能导致主体区间几乎不可见。

3. 指标口径层

绘图前明确四件事:

  1. 粒度:一行代表什么?订单、客户、商品、日、月还是一次事件?
  2. 指标:原值、求和、均值、中位数、计数、去重计数、占比还是累计值?
  3. 维度:按什么分组?地区、产品、渠道、部门还是时间?
  4. 分母:占比和转化率的分母是什么?

聚合规则

  • 金额、销量等加总型指标:默认 sum,但必须符合业务语义。
  • 单价、率、评分等平均型指标:优先 mean,必要时采用加权平均。
  • 用户/客户/设备等实体指标:优先确认是否应 nunique
  • 累计指标:不得把已累计的值再次简单求和。
  • 百分比:优先确认原始口径,不在不明分母时自行推算。

禁止因为“能算”就默认“算得对”。


4. 分析任务到图表的决策矩阵

| 分析任务 | 默认首选 | 可替代 | 主要风险 | |---|---|---|---| | 趋势 | line | area, step, slope | 缺期被误读为下降 | | 排名 | horizontal bar | bar, lollipop, dot plot | 类别太多 | | 精确比较 | bar | dot plot, table | 无意义的 3D | | 构成 | stacked bar | percent stacked, treemap | 类别过多 | | 少量占比 | donut / pie | bar | 扇区难比较、类别过多 | | 分布 | histogram | box, violin, ECDF | 小样本过度解读 | | 关系 | scatter | bubble, heatmap | 相关不等于因果 | | 相关结构 | heatmap | scatter matrix | 缺失值导致样本量变化 | | 增减拆解 | waterfall | slope, grouped bar | 基准与增量混淆 | | 流程转化 | funnel | step | 阶段定义不一致 | | 流向 | sankey | network | 节点过多 | | 层级 | treemap | sunburst | 层级定义不完整 | | 多指标 | parallel coordinates | radar | 量纲不可直接比较 | | 目标达成 | bullet | gauge | 量程或目标含义不明 | | KPI | card | number + sparkline | 只展示结果不说明基准 | | 明细核验 | table | pivot table | 信息密度过高 | | 空间 | choropleth / symbol map | hexbin | 地理字段与边界不匹配 |

特殊图形纪律

  • 饼图/环形图:默认不超过 7–8 个互斥类别。
  • Gauge:只有量程、目标和当前值都有明确含义时使用。
  • 双轴:默认禁用;仅当单位不同且比较关系明确时开放,并标明左右轴单位。
  • 3D:只在第三维真的承载空间/体量语义且二维无法表达时使用。
  • 雷达图:用于少量指标的轮廓比较,不用于精确排名。
  • Sankey:必须存在真实 source → target 流量。
  • Network:必须存在真实节点与边数据,不能凭分类字段制造关系。

5. 自动选图算法

自动模式按以下顺序工作:

Step A:识别任务

从用户问题、字段组合与数据结构中提取目标:趋势 / 排名 / 比较 / 构成 / 分布 / 关系 / 流程 / 层级 / 目标 / 核验。

Step B:生成候选

根据字段类型和任务生成候选图,而不是从所有图表随机抽样。

Step C:评分

建议评分模型:

总分 = 任务匹配 × 0.30 + 字段适配 × 0.20 + 数据规模 × 0.15 + 可读性 × 0.15 + 语义安全 × 0.10 + 信息增益 × 0.10

重复表达、过度复杂、量纲风险和信息密度过高应扣分。

Step D:建立视图组合

默认最多 6 个核心视图:

  • 1 个主视图:回答第一问题。
  • 1–3 个解释视图:回答“为什么”。
  • 1–2 个核验视图:回答“数字是否可信、哪里异常”。

如果两个图表达同一个结论,只保留信息密度更高的一个。

Step E:输出可解释推荐

每个推荐至少说明:图表、字段、聚合、评分、选择理由、限制条件。

示例:

{
  "chart": "horizontal_bar",
  "score": 92,
  "task": "ranking",
  "fields": {"category": "地区", "measure": "销售额"},
  "aggregation": "sum",
  "reason": "类别较多且标签偏长,横向排序更易读取",
  "warnings": []
}

6. 全域图表能力

比较类

bar / horizontal_bar / grouped_bar / stacked_bar / percent_stacked / dot_plot / lollipop

趋势类

line / area / step / slope / sparkline

分布类

histogram / box / violin / ecdf

关系类

scatter / bubble / heatmap / scatter_matrix

构成与层级类

pie / donut / treemap / sunburst

变化与流程类

waterfall / funnel / sankey

多维与结构类

radar / parallel_coordinates / network / org_chart / mindmap

指标与核验类

kpi_card / bullet / gauge / progress / table / pivot

空间类

choropleth / symbol_map / hexbin_map

上述目录是能力边界,不代表项目应全部使用。


7. 颜色与视觉编码系统

视觉主题至少同时控制:背景、卡片、文字、次级文字、网格线、主强调色、系列色、警示色、正负色、字体层级、圆角、间距。

内置风格方向:

editorial / business / finance / executive / academic / minimal / dark / dashboard / warm / monochrome / public-sector / product / scientific

编码规则

  • 同一页面中同一业务语义尽量保持同色。
  • 连续数值使用顺序色阶。
  • 正负变化使用发散色。
  • 分类颜色要区分但避免高饱和噪声。
  • 不允许只依靠红/绿区分关键状态。
  • 深色主题要同步调整网格、文字和对比度,不能只是反转背景。

标签规则

  • 少类别:可直接标注。
  • 中等类别:重点项标注,次要项减少标签。
  • 大量类别:Top-N、筛选、分面或表格优先。
  • 长标签:优先横向条形图、换行或缩写映射表。

8. 分析型仪表板

推荐布局不是平均分割,而是按视觉权重分配。

版式 A:管理驾驶舱

KPI → 核心趋势 → 排名/构成 → 异常 → 明细

版式 B:业务分析页

核心指标 → 主分析图 → 维度拆解 → 关系分析 → 明细

版式 C:研究分析页

问题定义 → 分布 → 关系 → 分组比较 → 稳健性核验

版式 D:数据监控页

状态 KPI → 趋势 → 阈值/目标 → 异常事件 → 明细

避免所有卡片同等面积;主结论应获得最大的视觉权重。


9. 事实与叙事规则

允许输出:

  • 排名事实:“A 类别在当前筛选范围内最高”。
  • 变化事实:“本期较上期增加 12%”。
  • 分布事实:“中位数低于均值,数据呈右偏”。
  • 异常事实:“存在明显高于主体区间的极端值”。

不得自动输出:

  • 没有实验设计支持的因果结论。
  • 没有基准就宣称“显著改善”。
  • 没有可靠样本量就宣称总体规律。
  • 把模型推断结果写成原始数据事实。

当分析只能支持相关关系时,使用“相关”“共同变化”“伴随”之类措辞。


10. 六道质量门

Gate 1:输入门

文件可读取、编码正常、字段存在。

Gate 2:语义门

粒度、指标、维度、聚合口径明确。

Gate 3:图表门

图表与分析任务匹配,没有明显误导风险。

Gate 4:数值门

关键数字可由最终数据表重算。

Gate 5:视觉门

标题、单位、轴、图例、标签、颜色和间距可读。

Gate 6:叙事门

所有标题和洞察都能被图中数据支持。

任何 Gate 失败都不得静默通过。


11. 交互设计

当输出 HTML 仪表板时,优先提供:

  • 悬停查看精确值。
  • 图例开关。
  • 缩放与重置。
  • 统一筛选器。
  • Top-N 切换。
  • 明细表查看。
  • 数据口径说明。

交互不能改变统计口径而不告知用户。


12. 失败处理

字段缺失

不要猜一个“看起来相似”的字段顶替。指出缺失,并继续生成不依赖该字段的部分。

结构不适合目标图

说明原因,给出最接近的安全替代图。

数据过少

降低图形复杂度,不输出虚假的精细分布或关系判断。

类别过多

使用 Top-N、聚合、分面、筛选或明细表,不强行显示全量标签。

多表连接风险

先进行连接基数检查;存在一对多/多对多放大风险时暂停指标聚合并报告风险。


13. 默认交付物

最小交付

  • 可视化 HTML。
  • 分析说明。
  • 质量警告。

完整交付

  • visualization.html
  • analysis_report.json
  • 关键图表配置/字段口径说明。
  • 数据质量摘要。

报告至少包含:

{
  "profile": {},
  "quality": [],
  "charts": [],
  "metrics": [],
  "insights": [],
  "warnings": [],
  "method": {}
}

14. 推荐命令

python scripts/visualize.py input.xlsx --mode auto --style executive --output out --report
python scripts/visualize.py sales.csv --mode single --chart horizontal_bar --category 地区 --measure 销售额 --agg sum --style finance --output out
python scripts/visualize.py sales.csv --mode single --chart line --time 日期 --measure 销售额 --style editorial --output out

15. 执行准则

每次任务都遵循以下顺序:

读数据 → 查问题 → 定口径 → 识别分析意图 → 生成候选 → 选择图表 → 组织版式 → 验证数字 → 检查视觉 → 生成洞察 → 交付文件。

最终结果必须同时满足三个条件:

看得懂、算得对、说得明白。