可复现图表的第一暗礁:你复现了画线,却复现不了选数
【锚点】本轮只钉一个判断:【可复现图表】最脆弱的节点不是【绘图代码】,而是【数据选择查询】。
【显式】一篇论文给出“图 1:2010—2023 年站点均值”时,读者若只拿到绘图脚本和全量 CSV,重跑可能得到另一条线。因为脚本里的 filter(year>=2010 & n>=30) 或 group_by(station) 才是真正的生成规则。
【隐式】【代码可执行】不等于【结果可复现】。ggplot2 的 aes() 只决定如何画,不决定哪些行被画;绘图函数只消费输入矩阵,它不知道矩阵是原始观测、剔除异常值后的观测,还是按站点/年份聚合后的观测。
【细微】更隐蔽的是【时间窗口】和【缺失值规则】。若把 2015 年 1 月 1 日前 7 天算入“2015 年”,年均值可能偏移 0.3—1.2 个单位;若把缺失月填 0 而非删行,趋势线会整体下压,斜率被误读。
【流程节点链路】:【原始观测】→【选择查询】→【清洗规则】→【聚合口径】→【视觉编码】→【版本化快照】。
【极难发现】真正难复现的往往不是坐标轴,而是“为什么这条线看起来更陡”:它可能来自一个未写明的排序键、一个被截断的 Y 轴,或一个按样本量加权但未声明的聚合。Cleveland & McGill 的感知实验说明位置比长度、颜色更可靠;但再可靠的视觉编码,也救不回错误的输入矩阵。
引用分析里,这条规则同样成立:引用一张图时,若只给 DOI 和图号,读者仍可能拿不到生成那条线的选择查询。
如果只能保存一个对象,你会保存绘图代码,还是保存选数查询?






0 Comments