关于 data-visualization
Data Visualization Best Practices 为科学图表制作提供实践指导,适用于研究人员及需要检查或优化可视化的人士。它结合图表选择建议、常见问题参考、样式资源和导出脚本,涵盖出版图表规范与图像尺寸限制。
主要功能
- 01按数据类型选择图表
- 02检查对数轴与异常值处理
- 03应用色盲友好配色
- 04提供出版图表样式与调色板
- 05按期刊规范导出图表
适用场景
- 01制作科学论文中的图表
- 02排查可能误导的可视化
- 03优化图表布局与统计标注
- 04生成适合分享给 Claude 的图像
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ delphine-l/ claude_global --skill data-visualization安装后在 Claude Code 中输入/data-visualization确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
chart-recipes.mdclaude-image-constraints.mdcolor-palettes.mdfigure-descriptions.mditol-reference.mdjournal_requirements.mdpitfalls-and-troubleshooting.mdassets/color_palettes.pynature.mplstylepresentation.mplstylepublication.mplstylescripts/figure_export.pystyle_presets.py详细介绍
数据可视化最佳实践
为创建达到出版标准的科学可视化、避免常见问题并提升图表清晰度提供专家指导。
何时使用此技能
- 为科学出版物创建图表
- 调试具有误导性或失真的可视化
- 优化图表布局和元素尺寸
- 根据数据特征选择合适的图表类型
- 确保统计标注能够妥善显示
- 生成图像,以便与 Claude 或其他 AI 工具分享
支持文件
此技能按主题整理为多个参考文件。请按需加载:
- pitfalls-and-troubleshooting.md - 对数尺度失真、坐标变换错误、离群值处理原则、坐标轴范围优化、浮点数年份标签
- chart-recipes.md - 时间趋势、箱线图、散点图、类别占比、堆叠面积图、样本量图例以及出版图表中离群值处理双重方法的代码示例
- color-palettes.md - Okabe-Ito 调色板、Paul Tol 调色板、连续型/发散型配色方案,以及在 matplotlib/seaborn 中实现色盲友好配色
- claude-image-constraints.md - Claude API 的 8000px 限制、安全图表尺寸预设、调整尺寸的辅助工具、Jupyter notebook 超大图像修复方法
- figure-descriptions.md - 用于撰写达到出版标准的图表说明的模板,并提供规范的统计结果报告方式
- itol-reference.md - iTOL 数据集格式(DATASET_STYLE、DATASET_BINARY、DATASET_COLORSTRIP)、物种名称同步、故障排除
- journal-requirements.md - 各期刊的图表规范(Nature、Science、Cell、PLOS、ACS、IEEE、Elsevier、BMC):尺寸、DPI、格式、面板标注、文件命名
资源(可在 notebook/脚本中导入)
assets/publication.mplstyle- 通用出版样式:plt.style.use('path/to/publication.mplstyle')assets/nature.mplstyle- Nature 期刊样式(单栏 89mm、7pt 字体、600 DPI)assets/presentation.mplstyle- 适用于海报和幻灯片的较大字体/线条assets/color_palettes.py- 可导入的调色板定义(Okabe-Ito、Wong、Paul Tol)、apply_palette()辅助函数、DNA 碱基颜色
脚本(辅助工具)
scripts/figure_export.py-save_publication_figure()、save_for_journal()、check_figure_size():根据期刊指定的 DPI/格式设置,以多种格式导出scripts/style_presets.py-apply_publication_style()、configure_for_journal()、set_color_palette():一键配置期刊样式
核心原则
1. 始终检查对数尺度图表
基于 KDE 的图表(小提琴图、山峦图)在对数坐标轴上会产生失真的形状。请使用箱线图,或先对数据进行对数变换,再在线性坐标轴上绘图。详情请参阅 pitfalls-and-troubleshooting.md。
2. 先展示所有数据,再进行筛选
初始可视化默认展示所有数据点(showfliers=True)。离群值可能具有生物学意义。只有在领域专家审阅后才进行筛选,并始终记录排除项。
3. 使用色盲友好调色板
分类数据请使用 Okabe-Ito 调色板(Nature 推荐)。将颜色与标记形状结合,以提供冗余编码。切勿使用红绿配色。十六进制颜色代码和实现方法请参阅 color-palettes.md。
4. 遵守 Claude 的图像尺寸限制
与 Claude 分享的图像任一维度都不得超过 8000 像素。请使用安全图表尺寸预设和 save_figure() 辅助函数。详情请参阅 claude-image-constraints.md。
5. 谨慎放置注释
使用纯数据坐标或 ax.transAxes(0-1 范围)来定位文本。切勿混用坐标系(例如,将 ax.get_xaxis_transform() 与数据尺度的 y 值混用)。请参阅 pitfalls-and-troubleshooting.md。
图表选择快速指南
| 数据类型 | 推荐图表 | 适用场景 |
|---|---|---|
| 分布比较 | 箱线图 | 大型数据集、对数刻度、多组数据 |
| 分布形态 | 直方图 | 始终适用于对数刻度,可显示真实频率 |
| 时间趋势(少量数据点) | 散点图 + 回归 | 每个时间点少于 50 个数据点,时间连续 |
| 时间趋势(大量数据点) | 按年份分组的箱线图 | 数据点重叠、时间点离散 |
| 类别占比随时间变化 | 堆叠面积图 + 堆叠条形图(双面板) | 同时展示相对趋势和绝对趋势 |
| 类别比较 | 条形图、小提琴图(仅线性刻度) | 组均值或分布 |
| 系统发育注释 | iTOL 数据集 | 使用元数据进行树形可视化 |
出版用图表清单
创建前
- 选择适合色盲人士的调色板(推荐 Okabe-Ito)
- 规划图表尺寸,确保不超过 Claude 的 8000px 限制
- 确定面板布局(并排或堆叠)
创建过程中
- 在图例中标注样本量:
Category (n=123) - 使用整数年份标签:
ax.xaxis.set_major_locator(plt.MaxNLocator(integer=True)) - 添加注释时设置明确的坐标轴范围
- 对于密集数据,缩小元素尺寸(s=25, alpha=0.5)
- 保存时使用
bbox_inches='tight'
创建后
- 验证图像尺寸(Claude 支持的最大尺寸为 7999x7999)
- 检查注释是否位于绘图区域内
- 测试色盲可访问性
- 出版用图表的分辨率至少为 300 DPI
时间分析
- 同时创建包含全部数据的版本和清理后的版本
- 基于完整数据集(而非清理后的数据)计算统计量
- 记录异常值移除方法和数据保留率
- 使用清晰的文件命名:
figure.png与figure_clean.png
快速参考:安全图表尺寸(300 DPI)
FIG_SIZES = {
'single_column': (3.5, 4), # 1050x1200 px
'double_column': (7, 5), # 2100x1500 px
'full_page': (7, 9), # 2100x2700 px
'poster': (20, 15), # 6000x4500 px
'max_claude': (26, 26), # 7800x7800 px
}
快速参考:Okabe-Ito 颜色(3 个类别)
colors = {
'Category_A': '#0072B2', # Blue
'Category_B': '#E69F00', # Orange
'Category_C': '#CC79A7' # Reddish Purple
}
最佳实践总结
- 始终检查对数刻度图表 —— 对照直方图验证基于 KDE 的图表
- 测试元素尺寸 —— 使用不同尺寸重新生成,以获得最佳清晰度
- 明确设置坐标轴范围 —— 添加注释时不要依赖自动范围
- 保持样式一致 —— 使用 seaborn 的上下文和样式,确保出版用图表风格一致
- 高 DPI —— 保存时分辨率至少为 300 DPI(
dpi=300, bbox_inches='tight') - 优化坐标轴范围 —— 分布被压缩时,将视图缩放至数据范围
- 检查图像尺寸 —— 与 Claude 分享前验证尺寸(最大为 7999x7999)
- 设置尺寸限制 —— 以编程方式生成图像时使用安全图表尺寸
- 包含异常值的时间趋势 —— 同时创建清理后的版本(用于出版)和完整版本(用于验证)
- 标注样本量 —— 比较图表的图例中始终显示 n=
参考资料
- Matplotlib 文档:https://matplotlib.org/
- Seaborn 可视化:https://seaborn.pydata.org/
- iTOL 文档:https://itol.embl.de/help.cgi
- Okabe-Ito 调色板:https://jfly.uni-koeln.de/color/
- ColorBrewer:https://colorbrewer2.org