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 output.html
# 静态图像格式
python3 scripts/visualize_csv.py data.csv --scatter x y -o plot.png
python3 scripts/visualize_csv.py data.csv --correlation -o heatmap.pdf
python3 scripts/visualize_csv.py data.csv --bar 类别 -o chart.svg
2. 自动数据剖析
使用data_profile.py脚本生成全面的数据质量和统计报告。
文本报告(默认):
python3 scripts/data_profile.py data.csv
HTML报告:
python3 scripts/data_profile.py data.csv -f html -o report.html
JSON报告:
python3 scripts/data_profile.py data.csv -f json -o profile.json
剖析器提供的内容:
- 文件信息(大小、维度)
- 数据集概览(形状、内存使用、重复项)
- 逐列分析(类型、缺失数据、唯一值)
- 缺失数据模式和完整性
- 数值列统计摘要(均值、标准差、四分位数、偏度、峰度)
- 分类列分析(频率计数、最常见/最不常见值)
- 数据质量检查(高缺失数据、重复行、常量列、高基数)
何时使用剖析: 在以下情况下,始终建议在创建可视化之前运行数据剖析:
- 用户不熟悉数据集
- 数据质量未知
- 需要确定合适的可视化类型
- 首次探索新数据集
3. 多图表仪表板
使用create_dashboard.py脚本创建包含多个可视化的综合仪表板。
自动仪表板: 分析数据类型并自动创建合适的可视化:
python3 scripts/create_dashboard.py data.csv
自定义输出位置:
python3 scripts/create_dashboard.py data.csv -o my_dashboard.html
控制图表数量:
python3 scripts/create_dashboard.py data.csv --max-plots 9
基于配置的自定义仪表板: 创建JSON配置文件指定具体图表:
python3 scripts/create_dashboard.py data.csv --config 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 profile.html
# 2. 创建自动仪表板
python3 scripts/create_dashboard.py sales_data.csv -o dashboard.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 fig1_分布.png
python3 scripts/visualize_csv.py data.csv --scatter 收入 年龄 -o fig2_相关性.png
python3 scripts/visualize_csv.py data.csv --bar 类别 -o fig3_类别.png
# 生成数据摘要
python3 scripts/data_profile.py data.csv -f html -o data_summary.html
交互式仪表板
# 为演示创建自定义仪表板
# 1. 首先,创建包含所需图表的config.json
# 2. 生成仪表板
python3 scripts/create_dashboard.py data.csv --config config.json -o presentation_dashboard.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:选择合适图表类型、最佳实践和常见模式的综合指南