name: data-create-viz description: 使用Python创建出版质量的可视化 requires: [python]
创建可视化
如果您看到不熟悉的占位符或需要检查哪些工具已连接,请询问可用的集成。
使用Python创建出版质量的数据可视化。从数据生成图表,遵循清晰、准确和设计的最佳实践。
用法
您可以要求从数据源创建可视化(例如,“创建月度收入的折线图”或“可视化这些数据”)。
参数
数据源— 查询结果、粘贴的数据、CSV/Excel文件或要查询的数据图表类型— (可选)明确的图表类型(例如,“条形图”、“热力图”)
工作流程
1. 理解请求
确定:
- 数据源:查询结果、粘贴的数据、CSV/Excel文件或要查询的数据
- 图表类型:明确请求或需要推荐
- 目的:探索、演示、报告、仪表板组件
- 受众:技术团队、高管、外部利益相关者
2. 获取数据
如果数据仓库已连接且需要查询数据:
- 编写并执行查询
- 将结果加载到pandas DataFrame中
如果数据是粘贴或上传的:
- 将数据解析为pandas DataFrame
- 根据需要清洗和准备(类型转换、空值处理)
如果数据来自对话中的先前分析:
- 引用现有数据
3. 选择图表类型
如果用户未指定图表类型,根据数据和问题推荐一个:
| 数据关系 | 推荐图表 |
|---|---|
| 时间趋势 | 折线图 |
| 跨类别比较 | 条形图(如果类别多则使用水平条形图) |
| 部分到整体构成 | 堆叠条形图或面积图(避免饼图,除非类别少于6个) |
| 值的分布 | 直方图或箱线图 |
| 两个变量之间的相关性 | 散点图 |
| 两个变量随时间比较 | 双轴折线图或分组条形图 |
| 地理数据 | 等值线图 |
| 排名 | 水平条形图 |
| 流或过程 | 桑基图 |
| 关系矩阵 | 热力图 |
如果用户未指定,简要解释推荐。
4. 生成可视化
根据需要,使用以下库之一编写Python代码:
- matplotlib + seaborn:最适合静态、出版质量的图表。默认选择。
- plotly:最适合交互式图表或当用户请求交互性时。
代码要求:
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# 设置专业样式
plt.style.use('seaborn-v0_8-whitegrid')
sns.set_palette("husl")
# 创建适当大小的图形
fig, ax = plt.subplots(figsize=(10, 6))
# [图表特定代码]
# 始终包括:
ax.set_title('清晰、描述性标题', fontsize=14, fontweight='bold')
ax.set_xlabel('X轴标签', fontsize=11)
ax.set_ylabel('Y轴标签', 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()
5. 应用设计最佳实践
颜色:
- 使用一致、色盲友好的调色板
- 有意义地使用颜色(非装饰性)
- 用对比色突出关键数据点或趋势
- 用灰色淡化不太重要的参考数据
排版:
- 描述性标题,陈述见解而非仅指标(例如,“收入同比增长23%”而非“月度收入”)
- 可读的轴标签(如果可能避免旋转90度)
- 在关键点添加数据标签以增强清晰度
布局:
- 适当的空白和边距
- 图例放置不遮挡数据
- 按值排序类别(非字母顺序),除非有自然顺序
准确性:
- 条形图的Y轴从零开始
- 没有误导性轴中断而不明确标注
- 比较面板时使用一致的比例
- 适当的精度(不显示10位小数)
6. 保存和呈现
- 将图表保存为PNG文件,使用描述性名称
- 向用户显示图表
- 提供使用的代码以便修改
- 建议变体(不同图表类型、不同分组、缩小时段)
提示
- 如果您想要交互式图表(悬停、缩放、过滤),请提及“交互式”,我将使用plotly
- 指定“演示”如果您需要更大字体和更高对比度
- 您可以一次请求多个图表(例如,“创建一个2x2图表网格显示…”)
- 图表以PNG文件保存到当前目录