scientific-visualization 是做什么的?
使用 matplotlib/seaborn/plotly 创建出版级图表。支持多面板布局、误差线、显著性标记、色盲友好设计,并可导出 PDF/EPS/TIFF 格式,生成符合期刊要求的科学图表。
功能特性
- 多面板布局:轻松创建包含多个子图的复杂图形,支持
plt.subplots,GridSpec和seaborn.FacetGrid。 - 误差线与误差带:使用
plt.errorbar,seaborn.lineplot(ci=...)或plotly express的误差条功能。 - 统计显著性标记:自动或手动添加星号(*)、横线和括号表示组间显著性差异。
- 色盲友好调色板:采用
seaborn.color_palette('colorblind')或plotly的离散颜色序列,确保可读性。 - 出版级导出:支持矢量格式(PDF, EPS)和高分辨率位图(TIFF, 300+ DPI),符合期刊要求。
使用示例
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
# 设置色盲友好样式
sns.set_palette('colorblind')
plt.rcParams.update({'figure.dpi': 300, 'savefig.dpi': 300})
# 创建多面板图
fig, axes = plt.subplots(1, 2, figsize=(10, 4))
# 面板1:带误差线的柱状图
data1 = np.random.normal(loc=[2, 3, 4], scale=0.5, size=(30, 3))
means = data1.mean(axis=0)
errors = data1.std(axis=0)
axes[0].bar(['A', 'B', 'C'], means, yerr=errors, capsize=5)
axes[0].set_title('实验组比较')
# 面板2:带显著性标记的箱线图
sns.boxplot(data=data1, ax=axes[1])
axes[1].set_title('分布与异常值')
# 添加显著性标记(示例)
ax = axes[0]
ax.annotate('', xy=(0, 4.5), xytext=(1, 4.5),
arrowprops=dict(arrowstyle='-', color='black'))
ax.text(0.5, 4.6, '***', ha='center', va='bottom')
plt.tight_layout()
plt.savefig('figure.pdf', format='pdf')
plt.show()
支持的平台
- Claude Code:通过自然语言指令直接生成图表代码。
- Cursor:在编辑器中实时协作修改可视化参数。
- Codex(如 OpenAI Codex):根据描述生成可执行脚本。
环境变量
MATPLOTLIBRC:自定义 matplotlib 配置路径。MPLBACKEND:设置后端(推荐Agg用于无头导出)。
注意事项
- 导出为 EPS 时,请确保系统安装了 LaTeX 或
dvipng(用于文本渲染)。 - 对于大量数据,建议使用
plotly的交互式模式或seaborn的统计聚合功能。 - 色盲友好调色板最适合离散类别;连续数据可搭配
viridis或cividis。
许可证
MIT