data-visualization
作者 inferen-sh面向实战的数据可视化指南,重点讲解图表类型选择、配色方案以及标注的最佳实践。了解在什么场景下使用柱状图、折线图、散点图和热力图,如何清晰标注坐标轴,以及如何为仪表盘、报告和演示文稿用数据讲一个简洁有力的故事。
概览
这个技能能做什么
data-visualization 技能是一套专注的数据可视化指南,帮你把原始数据转化为清晰、高效的图表。它可以帮助你:
- 选择合适的图表类型(柱状图、折线图、散点图、热力图等)
- 运用基础色彩理论,让图表易读且兼顾可访问性
- 设置合理的坐标轴、刻度和标签,让数字易于理解
- 标注关键信息,让受众能快速抓住核心结论
该技能围绕使用 Python 和 matplotlib 的具体可复现工作流构建,并通过 inference.sh CLI 来运行。示例演示了如何从表格数据(如 CSV 或电子表格)生成可直接用于仪表盘、报告或演示文稿的生产级图片。
适用人群
如果你符合以下情况,建议使用 data-visualization 技能:
- 数据分析师,需要为干系人提供一致、可解释的图表
- 数据科学家,希望快速生成基于 matplotlib 的图表用于实验或汇报
- 产品或运营负责人,要把 Google Sheets 或 CSV 导出的数据做成图表
- 任何需要制作演示文稿、内部仪表盘或轻量 BI 视图的人
本技能聚焦于“分析结果的表达”,而不是定制 UI 组件或复杂 Web 仪表盘。如果你主要想要的是精美的前端可视化库(例如基于 D3.js 的自定义图表),那么这个技能更适合作为设计和工作流参考,而不是完整实现方案。
它解决哪些问题
本技能针对常见的数据可视化痛点进行设计:
- 图表类型选择不清晰 – 帮你判断何时用柱状图、折线图、散点图或热力图,以及什么时候应避免使用饼图。
- 坐标轴与刻度易误导 – 提供设置坐标轴范围、刻度间距的规则,避免产生误导性的视觉效果。
- 颜色使用不当 – 讲解如何少量使用颜色突出重点,同时保持足够对比度与可访问性。
- 标签难以阅读 – 教你如何撰写图表标题、标注坐标轴以及注释数据点,让关键信息一目了然。
- 工作流割裂 – 演示如何把可视化整合进 CLI/Python 工作流,做到数据更新后自动重新生成图表。
如果你经常需要把电子表格或 CSV 数据制作成干净、可复用的图片,用于演示或报告,data-visualization 能为你提供一套可重复使用的模式。
使用方法
1. 安装 data-visualization 技能
要通过 skills CLI 将 data-visualization 技能添加到你的环境,运行:
npx skills add https://github.com/inferen-sh/skills --skill data-visualization
这会从 inferen-sh/skills 仓库中拉取技能定义和相关指南内容,路径为 guides/design/data-visualization。
安装完成后,你可以在支持 skills 的工具里直接浏览这些文件,或者在 GitHub 上查看:
- 技能入口文件:
SKILL.md - 指南路径:
guides/design/data-visualization/
2. 配置 inference.sh CLI(运行代码示例所必需)
本技能的快速上手工作流使用 inference.sh CLI(infsh)来运行 Python,并通过 matplotlib 生成图表。
按照技能中引用的 CLI 安装文档进行安装:
- 打开 CLI 安装指南:
https://raw.githubusercontent.com/inference-sh/skills/refs/heads/main/cli-install.md
- 为你的平台安装
infshCLI。 - 进行认证:
infsh login
安装并登录 infsh 之后,你就可以运行 data-visualization 技能中用到的示例应用。
3. 使用 Python 和 matplotlib 生成图表
核心工作流是:把一段简短的 Python 脚本发送给一个运行 matplotlib 的 infsh app,由它生成并保存图像。技能中提供了一个现成示例,用于生成“月度收入”的柱状图:
infsh app run infsh/python-executor --input '{
"code": "import matplotlib.pyplot as plt\nimport matplotlib\nmatplotlib.use(\"Agg\")\n\nmonths = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\"]\nrevenue = [42, 48, 55, 61, 72, 89]\n\nfig, ax = plt.subplots(figsize=(10, 6))\nax.bar(months, revenue, color=\"#3b82f6\", width=0.6)\nax.set_ylabel(\"Revenue ($K)\")\nax.set_title(\"Monthly Revenue Growth\", fontweight=\"bold\")\nfor i, v in enumerate(revenue):\n ax.text(i, v + 1, f\"${v}K\", ha=\"center\", fontweight=\"bold\")\nplt.tight_layout()\nplt.savefig(\"revenue.png\", dpi=150)\nprint(\"Saved\")"
}'
这个脚本演示了本技能所强调的几项最佳实践:
- 使用 柱状图 展示离散的月度数值
- 为柱子应用统一且对比度高的颜色
- 使用清晰的坐标轴标签(
Revenue ($K))和有信息量、加粗的标题 - 在每个柱子上方做简单标注,让数值一眼能看清
运行命令后,你会得到一个 revenue.png 文件,可以:
- 插入到演示文稿(slide decks)
- 附在邮件报告中
- 发布到内部仪表盘
你可以在保持图表选择、标注和配色规则不变的前提下,通过修改 Python 代码,将这一模式扩展到其他类型的图表(折线图、散点图、热力图等)。
4. 将图表选择指南应用到你的数据
在 data-visualization 技能内容中,你会找到一份 Chart Selection Guide,其中包括一个名为 Which Chart for Which Data? 的章节。它会帮助你把数据类型和分析问题映射到合适的图表,例如:
- 随时间对比多个类别 → 折线图或分组柱状图
- 在某一时间点对比多个类别 → 柱状图
- 两个数值型变量之间的关系 → 散点图
- 展示两个维度上的强度/密度(例如时间 vs 类别)→ 热力图
你可以用这份指南来决定如何可视化以下数据:
- 来自分析工具的 CSV 导出(如按日会话量、按渠道收入)
- 电子表格中的表格数据,例如 A/B 测试结果或问卷调查结果
- 通过 Python 或 SQL 预处理好的数据,需要输出最终的图表图片用于报告
结合这份图表选择指南和上面的 Python/matplotlib 工作流,你可以用程序生成图片,而不是在 GUI 工具中手工制作每一张图。
5. 集成到你的报告与演示工作流
当你完成技能安装并打通 infsh pipeline 后,可以:
- 自动化生成周期性图表:在脚本中封装
infsh app run调用,自动拉取最新 CSV 数据,更新 Python 代码(或数据变量),并保存最新的 PNG 文件。 - 统一视觉风格:在多张图表中复用同一套颜色、字体和布局规范,让仪表盘和演示文稿视觉风格保持一致。
- 用于演示导出:将生成的 PNG 插入 PowerPoint、Keynote、Google Slides 或基于 Web 的仪表盘。
当你希望从电子表格或 CSV 数据到“可发布图表”的路径可以通过命令行或 Python 稳定复用时,data-visualization 技能尤其有价值。
6. 优先阅读哪些文件
安装完成后,建议先阅读以下关键文件,以更好地使用该技能:
SKILL.md– 技能的高层描述、快速上手命令和背景说明。guides/design/data-visualization/– 关于图表类型、坐标轴、配色和标注的详细规则。
设计新图表或重构现有仪表盘时,可以把它们当作检查清单来使用。
适用与不适用的场景
在以下情况下,适合使用 data-visualization 技能:
- 你主要处理的是 表格数据(CSV、电子表格、SQL 导出)。
- 你希望在报告和演示文稿中 统一图表质量。
- 你习惯运行 CLI 命令,并能看懂基础的 Python/matplotlib 代码片段。
在以下情况下,本技能可能不太适合:
- 你需要 JavaScript 可视化库来实现复杂的交互式 Web 图表(例如大型 D3.js 项目)。
- 你在搭建一个完整的 BI 平台,需要的是成套仪表盘软件,而不是图表设计指导。
- 你不使用 inference.sh,或不想要 CLI 驱动的工作流;这种情况下,你仍然可以使用其中的概念性指南(图表选择、配色、标注),但需要自行适配到你的工具中。
常见问题(FAQ)
如何安装 data-visualization 技能?
使用 skills CLI 安装:
npx skills add https://github.com/inferen-sh/skills --skill data-visualization
这会把 inferen-sh/skills 仓库中的 data-visualization 指南添加到你的环境,方便你随时查阅其中的图表选择和可视化规则。
使用这个技能时必须安装 inference.sh CLI 吗?
如果你想“原样运行”技能中提供的 Python/matplotlib 示例,就需要安装 infsh CLI。技能的快速上手部分已经明确说明了这一要求,并提供 CLI 安装指南链接。如果你更喜欢其他工具(例如本地运行 Python、使用 Jupyter 或其他环境),也可以只参考其中的概念性指导(图表选择、色彩理论、标注),并自行改写示例代码。
data-visualization 可以处理 CSV 或电子表格数据吗?
可以。推荐的工作流是:
- 在 Python 中加载 CSV 或电子表格数据。
- 将其转换成适合绘图的 list 或 array。
- 使用 matplotlib(参照技能示例)生成图表。
- 将图表保存为 PNG 文件,用于仪表盘、报告或演示文稿。
data-visualization 技能的重点在于如何选择和设计图表;你可以接入任何你掌控的表格数据源。
这个技能涵盖哪些图表类型?
本技能明确提到多种图表类型,包括:
- 柱状图(Bar charts)
- 折线图(Line charts)
- 散点图(Scatter plots)
- 热力图(Heatmaps)
同时也会讨论饼图的常见问题及应在何种场景下用其他图表替代。Chart Selection Guide 会根据你的数据和沟通目标,帮助你在这些图表中做出选择。
这个技能只关注美观吗?对分析有没有帮助?
虽然本技能的首要目标是提升 可视化表达,但它也能支持分析工作流程,主要体现在:
- 鼓励使用更能清楚呈现趋势、对比和关系的图表类型
- 避免使用具有误导性的坐标轴或刻度
- 使用标注高亮关键点
它并不是一门完整的数据分析课程,但面向分析师和数据科学家设计,帮助你把分析结果呈现得更容易理解、更值得信赖。
生成的图表可以嵌入到演示文稿和仪表盘中吗?
可以。Python/matplotlib 示例会输出静态图片(例如 revenue.png),你可以将其:
- 插入 PowerPoint、Keynote 或 Google Slides
- 上传到内部仪表盘或其他报表工具
- 附在 PDF 或 HTML 报告中
由于图表是通过脚本生成的,当数据更新时,你可以随时重新生成图表,并在不同报告中保持视觉风格的一致性。
在哪里可以查看 data-visualization 的所有相关文件?
安装完成后,可以在 Files 选项卡中查看,或直接访问仓库:
https://github.com/inferen-sh/skills/tree/main/guides/design/data-visualization
在这里你可以查看 SKILL.md 及相关指南内容,以及该仓库中其他技能可能共用的参考资料。
