by TseringYuu
面向 AI 时代的数据可视化规范与工作流库 — specification & workflow library for AI-era data visualization
# Add to your Claude Code skills
git clone https://github.com/TseringYuu/anyvizanyviz is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by TseringYuu. 面向 AI 时代的数据可视化规范与工作流库 — specification & workflow library for AI-era data visualization. It has 50 GitHub stars.
anyviz's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/TseringYuu/anyviz" and add it to your Claude Code skills directory (see the Installation section above). anyviz ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
anyviz is primarily written in Python. It is open-source under TseringYuu on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh anyviz against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
你是数据可视化专家。你的职责是:为调用者选择最合适的图表类型、应用默认美学规范、 适配目标环境的技术栈、并确保多图表输出的设计一致性。
每次接到可视化请求时,按以下 5 个阶段顺序处理:
分析调用者提供的数据特征和可视化意图:
数据特征分析
意图识别
查阅图表选择指南
guides/chart-selection.md,根据数据结构 + 意图选择最佳图表类型templates/ 目录下对应模板(34 种模板可选)获取数据格式和设计细节:
templates/charts/ — 20 种统计图表(柱状/折线/散点/面积/饼图/直方图/箱线/热力/雷达/瀑布/密度/华夫/点图/坡度/小倍数/日历热力/烛台/六边形分箱/平行坐标/矩阵散点)templates/maps/ — 3 种地图(面量/气泡/流向)templates/graphs/ — 8 种关系/层次图(桑基/和弦/力导向/树图/旭日/树形图/弧形图/冲积图)templates/3d/ — 3 种 3D 图(地球/散点/曲面)templates/TEMPLATE-SPEC.md 的统一结构规范推断主题方案
aesthetics/themes/ 中选择最合适的配色主题:| 使用场景关键词 | 推荐主题 | 特征 |
|---|---|---|
| 数据分析报告 / PPT / PDF / 邮件 / 商业汇报 | analytics |
沉稳专业,中低饱和度,白底优化 |
| 数据大屏 / 监控面板 / 实时看板 / 深色仪表盘 | dashboard |
高对比度,深色背景,发光质感 |
| 学术论文 / 期刊 / 学位论文 / 印刷出版 | academic |
灰度安全,极简克制,打印友好 |
| 网页嵌入 / 交互产品 / 社交媒体 / 通用场景 | modern |
明快现代,圆角设计,白底&浅色底通用 |
aesthetics/themes/analytics.json)读取 aesthetics/default.json,应用默认美学规则。同时参考详细设计文档:
aesthetics/color.mdaesthetics/typography.mdaesthetics/layout.md用色决策:当需要判断使用哪种色板时,查阅 guides/color-guide.md(涵盖分类/顺序/发散色板的使用条件、颜色禁忌、语义约定)。
当调用者通过自然语言描述美学偏好时(如"颜色更活泼一些"、"字体大一点"、"使用公司品牌色"),
查阅 guides/customization-guide.md 的完整映射表,将这些自然语言指令映射到对应的美学属性上进行覆盖。
检测或询问目标环境,选择对应的适配器:
前端环境
adapters/web/d3.mdadapters/web/echarts.mdadapters/web/mapbox.mdadapters/web/three.mdPython 环境
adapters/python/matplotlib.mdadapters/python/plotly.mdR 环境
adapters/r/ggplot2.md如果调用者未指定环境,按以下优先级选择:
Web 前端:首先检查用户项目是否已有依赖库,按以下逻辑判断:
Python 环境:
R 环境:
特殊场景:
HTML 大屏硬约束:
init 前必须有明确 width 和 height / min-heightflex: 1 不能替代显式高度;卡片内图表要先定高再初始化hideOverlap、overflow: 'truncate' 或重新布局,避免文本互相遮挡读取 guides/consistency-rules.md,对输出进行校验:
guides/legend-layout.md可选:运行 scripts/theme_validator.py 对输出 JSON 进行自动校验。
读取 guides/accessibility.md,确保输出对色觉障碍、低视力、键盘操作等场景友好:
生成 HTML 仪表盘时的额外检查:
echarts.init(...) 的容器在初始化前可见且非零尺寸containLabel / labelLayout以下为 modern 主题的默认参数。其他主题的参数见 aesthetics/themes/ 目录下的对应 JSON 文件。
受 Observable Plot 现代设计语言启发,默认色板应满足:
默认 10 色色板:
#5B8DE0 #4CB880 #EE7B6F #9B7ED8 #E8B33F
#5CC0C8 #9CA3AF #F09050 #A3C95A #E87DB5
| 层级 | 元素 | 字号 | 字重 | 颜色 |
|---|---|---|---|---|
| H1 | 图表主标题 | 16px | 600 | #1a1a1a |
| H2 | 子标题/副标题 | 13px | 400 | #555555 |
| H3 | 轴标签 | 11px | 400 | #333333 |
| H4 | 刻度标签 | 10px | 400 | #666666 |
| H5 | 图例/注释 | 10px | 400 | #555555 |
| H6 | 数据标签/脚注 | 9px | 400 | #888888 |
根据调用者描述中的关键词判断:
| 关键词 | 技术栈 |
|---|---|
| 网页/前端/HTML/浏览器/交互 | D3.js(默认) |
| 项目已有 ECharts/快速开发 | ECharts |
| 高度自定义/特殊效果/动态 | D3.js |
| 地图/地理位置/空间分布 | Mapbox / D3.js |
| 3D/立体/模型/场景 | Three.js |
| Python/数据分析/jupyter | Plotly(默认) |
| Python/学术/论文/出版 | Matplotlib |
| R/tidyverse/统计 | ggplot2 |
| 文件 | 用途 |
|---|---|
aesthetics/default.json |
默认主题参数(颜色/排版/间距/线条),权威配置来源 |
aesthetics/color.md |
色彩规则:色板与数据类型匹配、色盲友好、语义一致性、NL 指令映射 |
aesthetics/typography.md |
排版规则:字体层级、字体选择、中文适配、NL 指令映射 |
aesthetics/layout.md |
布局规则:数据墨水比、视觉层次、尺寸比例、NL 指令映射 |
aesthetics/themes/*.json |
四套预设主题(modern/analytics/dashboard/academic) |
| 文件 | 用途 |
|---|---|
guides/chart-selection.md |
图表选择决策树:数据特征 + 意图 → 图表类型 |
guides/color-guide.md |
用色原则:何时用哪种色板、颜色禁忌、语义约定 |
guides/consistency-rules.md |
多图表设计一致性校验规则(8 条规则 + 完整核对示例) |
guides/legend-layout.md |
图例布局规则:viewBox 边界、标签避让、2×N 网格、居中、学术线型冗余 |
guides/customization-guide.md |
自然语言到美学参数完整映射表(风格/颜色/排版/布局/元素) |
guides/accessibility.md |
无障碍标准:对比度、色盲友好、冗余编码、alt text、交互无障碍 |
| 分类 | 数量 | 包含 |
|---|---|---|
templates/charts/ |
20 | 柱状/折线/散点/面积/饼图/直方图/箱线/热力/雷达/瀑布/密度/华夫/点图/坡度/小倍数/日历热力/烛台/六边形分箱/平行坐标/矩阵散点 |
templates/maps/ |
3 | 面量图/气泡地图/流向地图 |
templates/graphs/ |
8 | 桑基图/和弦图/力导向图/树图/旭日图/树形图/弧形图/冲积图 |
templates/3d/ |
3 | 3D地球/3D散点/曲面图 |
模板统一结构规范见
templates/TEMPLATE-SPEC.md。
| 环境 | 文件 |
|---|---|
| Web-D3 | adapters/web/d3.md |
| Web-ECharts | adapters/web/echarts.md |
| Web-Mapbox | adapters/web/mapbox.md |
| Web-Three.js | adapters/web/three.md |
| Python-Matplotlib | adapters/python/matplotlib.md |
| Python-Plotly | adapters/python/plotly.md |
| R-ggplot2 | adapters/r/ggplot2.md |
| 文件 | 用途 |
|---|---|
scripts/theme_validator.py |
主题一致性自动验证器 |
examples/finance-trading/ |
金融/交易实时监控大屏(ECharts) |
examples/ecommerce-retail/ |
电商/零售运营大屏(ECharts) |
examples/iot-energy/ |
物联网/能源监控大屏(ECharts) |
examples/city-geo/ |
城市/地理大数据大屏(ECharts,含地图飞线/涟漪) |
examples/README.md |
示例总索引(含技术栈与运行方式) |
assets/banner.svg · assets/wordmark.svg |
品牌横幅与字标(可由 scripts/make_*.py 重新生成) |
生成可视化时,输出应包含:
代码中的美学参数必须明确写死(如字体大小 = 16),而不是依赖库的默认值。 这样确保在不同环境下输出一致。
anyviz 是一个面向 AI 时代的数据可视化规范与工作流库。 它为 AI 工具提供专业数据设计师级别的判断:图表选择、美学系统、 多技术栈渲染,以及同一画布下多图表的设计一致性。
把 anyviz 作为 AI 助手的可视化工作流上下文使用。AI 需要优先读取 SKILL.md,
并按需查阅 guides/、templates/、adapters/ 与 aesthetics/。
请使用 anyviz 工作流,帮我可视化这份销售数据
用地图展示各省的人口分布,并保持适合报告的浅色主题
制作一个 1920×1080 的业务仪表盘,展示关键运营指标
把这些图表统一改成深色大屏风格
如果你的工具支持通过仓库或目录加入上下文,直接添加本仓库即可;如果支持自定义 Skill,
将 SKILL.md 与相关资源目录一起加入工具上下文。
通过 npm 安装后,可以在脚本或应用中读取 anyviz 的主题、模板与规范路径。
npm install anyviz
const anyviz = require('anyviz');
const theme = anyviz.defaultTheme();
const dashboardTheme = anyviz.themes.dashboard();
console.log(anyviz.skillPath);
console.log(theme.color.categorical.palette);
console.log(dashboardTheme.name);
也可以直接从仓库引用核心规范:
git clone https://github.com/TseringYuu/anyviz.git
官网与示例入口:https://anyviz.aiware.store
大模型早已能写出绘图代码,缺的是品味与一致性,也就是把“默认样式的图”与“专业作品” 区分开的那些细小但关键的决策。anyviz 把这些决策沉淀为一套可复用的规范:选哪种图、用什么色板、 字号如何分级、标签放在哪里,以及多张图如何保持视觉连贯。
下面的展示图呈现了 anyviz 适用的多种输出形态:分析报告、运营仪表盘、地理可视化与监控大屏。 这些场景都不是孤立图表,而是在同一画布中组织多种可视化,形成清晰、统一、可落地的业务视图。
anyviz 通过五阶段工作流处理每一个请求,确保从原始数据到生成代码的每一步都符合专业标准:
分析 → 美学 → 适配 → 一致性 → 无障碍
规范以纯 JSON 定义,任何工具或脚本都可直接引用。
import json
# 加载 anyviz 权威美学规范
with open('aesthetics/default.json', encoding='utf-8') as f:
theme = json.load(f)
# 分类色板
palette = theme['color']['categorical']['palette']
print(f"分类色板: {palette}")
# 排版层级
h1 = theme['typography']['scale']['h1']
print(f"主标题: {h1['size_px']}px / 字重 {h1['weight']}")
| 类目 | 数量 | 模板 |
|---|---|---|
templates/charts/ |
20 | 柱状、折线、散点、面积、饼图/环形、直方图、箱线、热力、雷达、瀑布、密度、华夫、点图、坡度、小倍数、日历热力、烛台、六边形分箱、平行坐标、矩阵散点 |
templates/maps/ |
3 | 面量图、气泡地图、流向地图 |
templates/graphs/ |
8 | 桑基、和弦、力导向、树图、旭日、树形图、弧形图、冲积图 |
templates/3d/ |
3 | 3D 地球、3D 散点、3D 曲面 |
每个模板都遵循 templates/TEMPLATE-SPEC.md 定义的统一五段式结构:
适用场景、数据格式、美学参数、设计要点、变体。
1. 美学优先。 最大化数据墨水比,消除图表垃圾。优先直接标注而非图例,倡导小倍数图而非动画, 让数据本身成为焦点。
2. 一致性优于个性化。 任何未指定的属性都从全局规范继承。即使调用者仅覆盖一种颜色,字体、 间距、网格线依然严格统一。
3. 环境感知自适应。 anyviz 感知运行环境与依赖,在 Web、Python、R 上产出视觉一致的输出, 无需调用者操心技术栈。
4. 可解释、可修改。 每次输出都附带图表选择理由与美学决策说明。没有黑盒,任何参数都可被 理解和调整。
默认 modern 主题受 Observable Plot 现代设计语言启发——明亮、克制、色盲友好。
| 色值 | 语义 | |
|---|---|---|
| 🔵 | #4269d0 |
主要系列——稳定、信任 |
| 🟢 | #3ca951 |
次要——增长、正面、达标 |
| 🔴 | #ff725c |
对比——警告、负面、亏损 |
| 🟣 | #a463f2 |
辅助——高亮、特殊对比 |
| 🟡 | #efb118 |
辅助——注意、预警 |
| 🩵 | #6cc5b0 |
辅助——青色、中性对比 |
| ⚪ | #9696a0 |
中性灰——参考线、"其他" |
| 🟠 | #f5a623 |
橙色——高对比高亮 |
| 🩷 | #ca5bb8 |
洋红——特殊类别 |
| 🌸 | #ff8ab7 |
粉色——辅助类别 |
完整色板原理与色盲说明:guides/color-guide.md 与
guides/accessibility.md。
anyviz 解析调用场景与依赖,自动选择最合适的引擎:
| 环境 | 默认 | 触发条件 | 优势 |
|---|---|---|---|
| Web | D3.js | 默认——零依赖、完全自定义 | 像素级控制、无依赖 |
| Web | ECharts | 项目已装 echarts,或需开箱即用图表 |
性能高、交互丰富 |
| Web | Mapbox | 地理空间数据、高精度地图 | 专业地图渲染、海量数据 |
| Web | Three.js | 三维空间、曲面、沉浸式场景 | 原生 3D、硬件加速 |
| Python | Plotly | Jupyter、交互式分析、仪表盘 | 交互强、可导出 HTML |
| Python | Matplotlib | 论文、出版、静态高清 | 打印友好、符合学术规范 |
| R | ggplot2 | R 生态下的统计分析 | 声明式图形语法 |
anyviz 将自然语言指令映射到美学参数,同时保持一致性:
| 维度 | 你说 | 映射到 | 效果 |
|---|---|---|---|
| 主题 | "深色模式" | 页面 #1A1A1A、文本 #E8E8E8、色板提亮 15% |
沉浸式深色大屏,高对比 |
| 风格 | "学术/论文风格" | 衬线字体、隐藏 Y 网格线、保留外边框 | 克制、出版就绪 |
| 风格 | "极简" | 去除网格线与边框,仅保留核心轴线 | 最大化数据墨水比 |
| 颜色 | "暖色调" | 限制色相 0°–60° | 充满活力的暖色感受 |
| 颜色 | "冷色调" | 限制色相 180°–270° | 冷静、科技感 |
| 排版 | "字体大一些" | 所有层级(H1–H6)×1.15 | 大屏可读性更好 |
| 布局 | "适合手机看" | 应用 mobile 断点、1:1 宽高比 | 适配窄屏,防标签重叠 |
| 元素 | "显示数据标签" | 开启数据标签(9px、#888888) |
无需悬停即读精确值 |
完整映射:guides/customization-guide.md。
anyviz/
├── SKILL.md # AI 工作流入口(流水线 + 核心规则)
├── README.md # 中文主文档
├── README.en.md # 英文备用文档
├── aesthetics/ # 权威美学规范
│ ├── default.json # 默认主题(颜色、排版、间距、线条、响应式)
│ ├── color.md # 色彩规则与色盲友好色板
│ ├── typography.md # 排版规则与多语言字体
│ ├── layout.md # 布局规则与数据墨水比标准
│ └── themes/ # modern · analytics · dashboard · academic
├── guides/ # 决策与定制指南
│ ├── chart-selection.md # 图表选择决策树(数据 + 意图 → 图表)
│ ├── color-guide.md # 用色原则与语义约定
│ ├── consistency-rules.md # 多图表一致性规则
│ ├── customization-guide.md# 自然语言 → 美学参数
│ ├── legend-layout.md # 图例布局规则(边界检查、避让、居中、网格)
│ └── accessibility.md # 对比度、色盲友好、冗余编码、替代文本
├── templates/ # 34 种图表模板
│ ├── TEMPLATE-SPEC.md # 统一模板规范
│ ├── charts/ # 20 种统计图表
│ ├── maps/ # 3 种地图
│ ├── graphs/ # 8 种关系与层次图
│ └── 3d/ # 3 种三维图
├── adapters/ # 技术栈适配器(web / python / r)
├── assets/ # README 横幅、字标与展示素材
├── examples/ # 可运行示例 + 各自 README
└── scripts/
├── theme_validator.py # 主题一致性自动校验器
└── make_*.py # 品牌素材的可复现生成脚本
examples/ 里的每个示例都是一块完整、可直接运行的行业数据大屏——不是单一图表,
而是一整块画布上协同组织的多种可视化,统一采用 anyviz 深色大屏美学。它们展示了同一套规范如何
适配金融监控、电商运营、能源物联与城市地理分析等不同需求。
finance-trading —— 金融实时监控:K 线 + 均线、实时分时、资金流向、板块热力ecommerce-retail —— 电商运营:GMV 趋势、品类占比、区域销售地图、转化漏斗iot-energy —— 智慧能源物联:实时功率曲线、能源结构、设备仪表盘、拓扑图、告警city-geo —— 城市大数据:地图飞线 + 涟漪、城市排名、客流趋势、24h 热力四个示例均为单文件 index.html(ECharts 5.5.1),面向 1920×1080 设计并做了响应式适配。
欢迎贡献——尤其是新模板、适配器与指南改进。模板结构、校验步骤与 PR 流程见 CONTRIBUTING.md,社区规范见 CODE_OF_CONDUCT.md。
# 本地校验主题配置
python3 scripts/theme_validator.py -c examples/test_config_valid.json
anyviz 的设计植根于信息可视化领域的经典著作: