name: csv-data-visualizer description: 当处理CSV文件以创建交互式数据可视化、生成统计图表、分析数据分布、创建仪表板或执行自动数据剖析时,应使用此技能。它利用Plotly进行交互式可视化,为探索性数据分析提供全面的工具。
CSV 数据可视化器
概述
此技能为CSV文件提供全面的数据可视化和分析能力。它具备三大核心功能:(1) 使用Plotly创建独立的交互式可视化图表,(2) 自动进行数据剖析并生成统计摘要,(3) 生成包含多图表的仪表板。该技能专为探索性数据分析、统计报告和创建可用于演示的可视化图表而优化。
何时使用此技能
当用户请求以下内容时,请调用此技能:
- “可视化这个CSV数据”
- “根据这个数据创建直方图/散点图/箱线图”
- “显示[某列]的分布情况”
- “为这个数据集生成一个仪表板”
- “剖析这个CSV文件” 或 “分析这个数据”
- “创建相关性热力图”
- “显示随时间变化的趋势”
- “跨[类别]比较[变量]”
核心能力
1. 独立可视化
使用 visualize_csv.py 脚本创建特定图表类型以进行详细分析。
可用图表类型:
统计图表:
# 直方图 - 数值数据的分布
python3 scripts/visualize_csv.py data.csv --histogram 列名 --bins 30
# 箱线图 - 显示四分位数和异常值
python3 scripts/visualize_csv.py data.csv --boxplot 列名
# 按类别分组的箱线图
python3 scripts/visualize_csv.py data.csv --boxplot 薪资 --group-by 部门
# 小提琴图 - 带有概率密度的分布图
python3 scripts/visualize_csv.py data.csv --violin 列名 --group-by 类别
关系分析:
# 带自动趋势线的散点图
python3 scripts/visualize_csv.py data.csv --scatter 身高 体重
# 带颜色和大小编码的散点图
python3 scripts/visualize_csv.py data.csv --scatter x y --color 类别 --size 值
# 所有数值列的相关性热力图
python3 scripts/visualize_csv.py data.csv --correlation
时间序列:
# 单变量折线图
python3 scripts/visualize_csv.py data.csv --line 日期 销售额
# 同一图表上的多个变量
python3 scripts/visualize_csv.py data.csv --line 日期 "销售额,收入,利润"
分类数据:
# 条形图(自动统计类别数量)
python3 scripts/visualize_csv.py data.csv --bar 类别
# 用于显示构成的饼图
python3 scripts/visualize_csv.py data.csv --pie 区域
输出格式: 使用所需的格式扩展名指定输出文件:
# 交互式HTML(默认)
python3 scripts/visualize_csv.py data.csv --histogram 年龄 -o 输出.html
# 静态图像格式
python3 scripts/visualize_csv.py data.csv --scatter x y -o 图表.png
python3 scripts/visualize_csv.py data.csv --correlation -o 热力图.pdf
python3 scripts/visualize_csv.py data.csv --bar 类别 -o 图表.svg
2. 自动数据剖析
使用 data_profile.py 脚本生成全面的数据质量和统计报告。
文本报告(默认):
python3 scripts/data_profile.py data.csv
HTML报告:
python3 scripts/data_profile.py data.csv -f html -o 报告.html
JSON报告:
python3 scripts/data_profile.py data.csv -f json -o 剖析.json
剖析器提供的内容:
- 文件信息(大小、维度)
- 数据集概览(形状、内存使用、重复项)
- 逐列分析(类型、缺失数据、唯一值)
- 缺失数据模式和完整性
- 数值列的统计摘要(均值、标准差、四分位数、偏度、峰度)
- 分类列分析(频率计数、最常见/最不常见值)
- 数据质量检查(高缺失数据、重复行、常量列、高基数)
何时使用剖析: 在以下情况下,创建可视化之前始终建议先运行数据剖析:
- 用户不熟悉数据集
- 数据质量未知
- 需要确定合适的可视化类型
- 首次探索新数据集时
3. 多图表仪表板
使用 create_dashboard.py 脚本创建包含多个可视化图表的综合仪表板。
自动仪表板: 分析数据类型并自动创建合适的可视化图表:
python3 scripts/create_dashboard.py data.csv
自定义输出位置:
python3 scripts/create_dashboard.py data.csv -o 我的仪表板.html
控制图表数量:
python3 scripts/create_dashboard.py data.csv --max-plots 9
根据配置创建自定义仪表板: 创建JSON配置文件以指定确切的图表:
python3 scripts/create_dashboard.py data.csv --config 配置.json
仪表板配置格式:
{
"title": "销售分析仪表板",
"plots": [
{"type": "histogram", "column": "收入"},
{"type": "box", "column": "收入", "group_by": "区域"},
{"type": "scatter", "column": "广告支出", "group_by": "收入"},
{"type": "bar", "column": "产品类别"},
{"type": "correlation"}
]
}
仪表板图表类型:
histogram:数值列的分布box:箱线图,可选择按类别分组scatter:两个数值列之间的关系bar:分类值的计数correlation:数值相关性的热力图
工作流决策树
使用此决策树来确定合适的方法:
用户提供CSV文件
│
├─ "剖析此数据" / "分析此数据" / 不熟悉的数据集
│ └─> 首先运行 data_profile.py
│ 然后根据发现结果提供可视化选项
│
├─ "创建仪表板" / "数据概览" / 需要多个可视化图表
│ ├─ 用户明确知道需要哪些图表
│ │ └─> 创建JSON配置 → 使用配置运行 create_dashboard.py
│ └─ 用户需要自动仪表板
│ └─> 运行 create_dashboard.py(自动模式)
│
└─ 请求特定可视化("直方图"、"散点图"等)
└─> 使用 visualize_csv.py 配合相应标志
最佳实践
开始分析
- 对于不熟悉的数据集,始终先进行剖析:
python3 scripts/data_profile.py data.csv - 查看剖析输出以了解:
- 列数据类型和范围
- 缺失数据模式
- 数据质量问题
- 统计分布
选择可视化图表
请查阅 references/visualization_guide.md 获取详细指南。快速参考:
- 分布:直方图、箱线图、小提琴图
- 关系:散点图、相关性热力图
- 时间序列:折线图
- 类别:条形图(首选)或饼图(谨慎使用)
- 比较:按类别分组的箱线图
创建仪表板
- 自动仪表板:适用于初始探索
- 自定义仪表板:更适合演示或特定的分析目标
- 限制图表数量:最多保留6-9个图表以确保可读性
- 逻辑分组:将相关的可视化图表分组在一起
输出注意事项
- HTML:最适合交互式探索(缩放、平移、悬停提示)
- PNG/PDF:最适合报告和演示
- SVG:最适合需要矢量图形的出版物
依赖项
脚本需要以下Python包:
pip install pandas plotly numpy
对于静态图像导出(PNG、PDF、SVG),还需安装:
pip install kaleido
示例工作流
探索性数据分析
# 1. 剖析数据
python3 scripts/data_profile.py sales_data.csv -f html -o 剖析.html
# 2. 创建自动仪表板
python3 scripts/create_dashboard.py sales_data.csv -o 仪表板.html
# 3. 使用特定图表深入分析
python3 scripts/visualize_csv.py sales_data.csv --scatter 价格 销售额 --color 区域
python3 scripts/visualize_csv.py sales_data.csv --boxplot 收入 --group-by 产品
报告生成
# 为报告创建特定可视化图表
python3 scripts/visualize_csv.py data.csv --histogram 年龄 -o 图1_分布.png
python3 scripts/visualize_csv.py data.csv --scatter 收入 年龄 -o 图2_相关性.png
python3 scripts/visualize_csv.py data.csv --bar 类别 -o 图3_类别.png
# 生成数据摘要
python3 scripts/data_profile.py data.csv -f html -o 数据摘要.html
交互式仪表板
# 为演示创建自定义仪表板
# 1. 首先,创建包含所需图表的 config.json
# 2. 生成仪表板
python3 scripts/create_dashboard.py data.csv --config 配置.json -o 演示仪表板.html
故障排除
"未找到列"错误:
- 运行数据剖析以查看确切的列名
- CSV列名区分大小写
- 检查列名中是否有前导/尾随空格
空或错误的可视化图表:
- 验证数据类型(数值型与分类型)
- 检查所绘制列中是否有缺失数据
- 确保存在足够的非空值
脚本执行错误:
- 验证依赖项是否已安装:
pip list | grep plotly - 检查Python版本:需要Python 3.6+
- 对于图像导出问题,请安装kaleido:
pip install kaleido
资源
scripts/ 目录
visualize_csv.py:包含所有图表类型的主要可视化脚本data_profile.py:自动数据剖析和质量分析create_dashboard.py:多图表仪表板生成器
references/ 目录
visualization_guide.md:选择合适图表类型、最佳实践和常见模式的综合指南