其他
把查询结果或 DataFrame 做成出版级/交互式图表时…
适用于将查询结果、粘贴/上传数据或对话中的 DataFrame 转换为清晰准确的趋势、比较、分布、相关等图表,用于探索、报告、演示或仪表盘。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 48/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 55/100 ×0.15
适用场景
把查询结果或 DataFrame 做成出通用
解决思路
- 按 `/create-viz <data source> [chart type] [additional instructions]` 调用;如遇到不熟悉的占位符或需检查已连接工具,查看 `CONNECTORS.md`。
- 理解请求:确定数据源(查询结果、粘贴数据、CSV/Excel 文件或待查询数据)。
- 理解请求:确定图表类型(用户明确指定,或需要你推荐)。
- 理解请求:确定用途(探索、演示、报告、仪表盘组件)。
- 理解请求:确定受众(技术团队、高管、外部利益相关者)。
- 获取数据:若已连接数据仓库且需要查询,编写并执行查询,将结果加载到 pandas DataFrame。
- 获取数据:若数据是粘贴或上传的,解析为 pandas DataFrame,并按需清洗和准备(类型转换、空值处理)。
- 获取数据:若数据来自对话中的先前分析,引用现有数据。
- 若用户未指定图表类型,根据数据和问题推荐一个,并简要解释推荐理由。
- 趋势随时间变化:推荐折线图。
- 跨类别比较:推荐柱状图;类别较多时推荐水平柱状图。
- 部分与整体组成:推荐堆叠柱状图或面积图;除非类别少于 6 个,否则避免饼图。
- 数值分布:推荐直方图或箱线图。
- 两个变量相关性:推荐散点图。
- 两个变量随时间比较:推荐双轴折线图或分组柱状图。
- 地理数据:推荐 choropleth map(分级色彩地图)。
- 排名:推荐水平柱状图。
- 流程或过程:推荐 Sankey diagram(桑基图)。
- 关系矩阵:推荐 heatmap(热力图)。
- 生成可视化:静态、出版级图表优先用 matplotlib + seaborn(默认选择)。
- 生成可视化:交互式图表或用户要求交互时用 plotly。
- 代码中导入 `matplotlib.pyplot as plt`、`seaborn as sns`、`pandas as pd`。
- 代码中设置专业样式:`plt.style.use('seaborn-v0_8-whitegrid')`。
- 代码中设置调色板:`sns.set_palette("husl")`。
- 代码中创建合适尺寸的 figure:`fig, ax = plt.subplots(figsize=(10, 6))`。
- 编写图表特定代码。
- 始终设置清晰、描述性的标题:`ax.set_title('Clear, Descriptive Title', fontsize=14, fontweight='bold')`。
- 始终设置 X 轴标签:`ax.set_xlabel('X-Axis Label', fontsize=11)`。
- 始终设置 Y 轴标签:`ax.set_ylabel('Y-Axis Label', fontsize=11)`。
- 适当格式化数字:百分比用 `'45.2%'` 而不是 `'0.452'`。
- 适当格式化数字:货币用 `'$1.2M'` 而不是 `'1200000'`。
- 适当格式化数字:大数用 `'2.3K'` 或 `'1.5M'` 而不是 `'2300'` 或 `'1500000'`。
- 移除图表垃圾:隐藏顶部脊柱 `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()`。
- 设计最佳实践-颜色:使用一致且对色盲友好的调色板。
- 设计最佳实践-颜色:有含义地使用颜色,而不是装饰性使用。
- 设计最佳实践-颜色:用对比色突出关键数据点或趋势。
- 设计最佳实践-颜色:将较不重要的参考数据灰色显示。
- 设计最佳实践-排版:使用陈述洞察的描述性标题,而不只是指标名(例如 `Revenue grew 23% YoY` 而不是 `Revenue by Month`)。
- 设计最佳实践-排版:轴标签要可读;如果可以避免,不要旋转 90 度。
- 设计最佳实践-排版:在关键点上添加数据标签,前提是能增加清晰度。
- 设计最佳实践-布局:保留合适的留白和边距。
- 设计最佳实践-布局:图例放置不能遮挡数据。
- 设计最佳实践-布局:类别按值排序(不要按字母排序),除非有自然顺序。
- 设计最佳实践-准确性:柱状图的 Y 轴从零开始。
- 设计最佳实践-准确性:没有清晰标注时不要使用误导性的轴断裂。
- 设计最佳实践-准确性:比较多个面板时使用一致的比例尺。
- 设计最佳实践-准确性:使用适当精度,不要显示 10 位小数。
- 保存并呈现:将图表保存为描述性命名的 PNG 文件。
- 保存并呈现:向用户展示图表。
- 保存并呈现:提供所用代码,方便用户修改。
- 保存并呈现:建议变体(不同图表类型、不同分组、缩放到某个时间范围)。
- 示例调用:`/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`。
- 提示:如果需要交互式图表(悬停、缩放、筛选),说明“interactive”,并使用 plotly。
- 提示:如果需要演示,说明“presentation”,以使用更大字体和更高对比度。
- 提示:可以一次请求多个图表(例如“创建 2x2 图表网格展示……”)。
- 提示:图表以 PNG 文件保存到当前目录。
适用边界 · 注意事项
- 当不需要图表、只需要表格或原始数据结果时,不使用此流程。
- 当运行环境不能执行 Python 或不能安装 matplotlib/seaborn/plotly 时,不使用此流程。
- 当必须使用特定 BI 平台原生图表模板且不能嵌入或导出 Python 图像时,不使用此流程。