mcpField
C
create-viz

create-viz

github.com/anthropics数据与数据库33.6k5.2k 次安装1 天前更新
代码仓库

关于 create-viz

create-viz 是一项使用 Python 将提供、上传或查询的数据制作为可视化图表的技能。它会协助选择图表类型并遵循设计规范,最后保存 PNG 并提供所用代码。

主要功能

  1. 01接收粘贴、上传或查询的数据
  2. 02根据数据关系推荐图表类型
  3. 03使用 matplotlib、seaborn 或 plotly 生成图表
  4. 04遵循清晰度与准确性规范
  5. 05保存 PNG 并提供源代码

适用场景

  1. 01为报告绘制趋势图
  2. 02在演示文稿中比较类别
  3. 03探索数据分布或相关性
  4. 04根据数据创建交互式图表

安装

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

$npx skills add https://github.com/anthropics/knowledge-work-plugins --skill create-viz

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

详细介绍

/create-viz - 创建可视化

如果您看到不熟悉的占位符,或需要检查已连接的工具,请参阅 CONNECTORS.md。

使用 Python 创建可用于发布的高质量数据可视化。根据数据生成图表,并遵循清晰、准确和设计方面的最佳实践。

用法

/create-viz <data source> [chart type] [additional instructions]

工作流

1. 理解请求

确定以下内容:

  • 数据来源:查询结果、粘贴的数据、CSV/Excel 文件,或需要查询的数据
  • 图表类型:明确指定的,或需要推荐的
  • 用途:探索、演示、报告、仪表板组件
  • 受众:技术团队、管理层、外部利益相关方
2. 获取数据

如果已连接数据仓库且需要查询数据:

  1. 编写并执行查询
  2. 将结果加载到 pandas DataFrame 中

如果数据是粘贴或上传的:

  1. 将数据解析为 pandas DataFrame
  2. 根据需要进行清洗和准备(类型转换、空值处理)

如果数据来自对话中的先前分析:

  1. 引用已有数据
3. 选择图表类型

如果用户未指定图表类型,则根据数据和问题推荐一种:

数据关系推荐图表
随时间的趋势折线图
跨类别比较条形图(类别较多时使用水平条形图)
部分与整体的构成堆叠条形图或面积图(除非类别少于 6 个,否则避免使用饼图)
数值分布直方图或箱线图
两个变量之间的相关性散点图
两个变量随时间的比较双轴折线图或分组条形图
地理数据分级统计地图
排名水平条形图
流向或流程桑基图
关系矩阵热力图

如果用户未指定,请简要说明推荐理由。

4. 生成可视化

根据需求,使用以下库之一编写 Python 代码:

  • matplotlib + seaborn:最适合静态、可用于发布的高质量图表。默认选择。
  • plotly:最适合交互式图表,或用户要求交互功能时使用。

代码要求:

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

# Set professional style
plt.style.use('seaborn-v0_8-whitegrid')
sns.set_palette("husl")

# Create figure with appropriate size
fig, ax = plt.subplots(figsize=(10, 6))

# [chart-specific code]

# Always include:
ax.set_title('Clear, Descriptive Title', fontsize=14, fontweight='bold')
ax.set_xlabel('X-Axis Label', fontsize=11)
ax.set_ylabel('Y-Axis Label', fontsize=11)

# Format numbers appropriately
# - Percentages: '45.2%' not '0.452'
# - Currency: '$1.2M' not '1200000'
# - Large numbers: '2.3K' or '1.5M' not '2300' or '1500000'

# Remove chart junk
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)

plt.tight_layout()
plt.savefig('chart_name.png', dpi=150, bbox_inches='tight')
plt.show()
5. 应用设计最佳实践

颜色:

  • 使用一致且对色盲友好的配色方案
  • 有意义地使用颜色(而非装饰性地)
  • 用对比色突出关键数据点或趋势
  • 将次要的参考数据设为灰色

排版:

  • 标题应描述洞察结论,而不仅仅是指标(例如用“收入同比增长 23%”,而非“按月收入”)
  • 坐标轴标签清晰易读(如无必要,避免旋转 90 度)
  • 在关键数据点上添加数据标签(当其有助于理解时)

布局:

  • 留出适当的留白和边距
  • 图例位置不遮挡数据
  • 类别按数值排序(而非按字母顺序),除非存在自然顺序

准确性:

  • 条形图的 Y 轴从零开始
  • 除非有清晰的标注,否则不要使用误导性的坐标轴断点
  • 比较多个面板时保持刻度一致
  • 精度适当(不要显示 10 位小数)
6. 保存并展示
  1. 将图表保存为 PNG 文件,并使用描述性名称
  2. 向用户展示图表
  3. 提供所用代码,方便用户修改
  4. 建议变体(不同图表类型、不同分组方式、缩放的时间范围)

示例

/create-viz Show monthly revenue for the last 12 months as a line chart with the trend highlighted
/create-viz Here's our NPS data by product: [pastes data]. Create a horizontal bar chart ranking products by score.
/create-viz Query the orders table and create a heatmap of order volume by day-of-week and hour

提示

  • 如果您需要交互式图表(悬停、缩放、筛选),请提及“交互式”,Claude 将使用 plotly
  • 如果需要更大的字体和更高的对比度,请注明“演示用”
  • 您可以一次请求多个图表(例如“创建一个 2x2 的图表网格,展示……”)
  • 图表会以 PNG 文件的形式保存到您当前的目录中

评论

支持 Markdown