scientific-plot · 二维科学绘图
坐标轴、单位、刻度、误差棒、置信区间带 —— 用原生 SVG 画, 零第三方运行时依赖。本模块不计算任何统计量, 它只把调用方给的数画在正确的位置上。
1 · 函数曲线与坐标轴
阻尼振荡 y(t) = A·e^(−λt)·cos(2πft)。
曲线是采样出来的数据点 —— 调用方传的是函数,不是字符串表达式,
本模块不做表达式求值。
2 · 离散测量 + 误差棒
误差棒画的是调用方给的误差边界。本模块不判断它表示标准差还是标准误, 也不据此推断显著性 —— 这两件事必须由测量者说清楚。
3 · 折线 + 置信区间带 + 参考线
区间带是调用方算好的上下边界。图上的水平虚线是工艺控制下限。
4 · 对数坐标
对数轴必须显式声明。跨度跨 6 个数量级时自动只保留 10 的幂做刻度, 避免标签挤成一团。若给对数轴一个 ≤ 0 的边界,模块会直接报错而不是悄悄修正。
4b · 对数轴上的无效数据(≤ 0)必须明说
对数轴上 0 和负数没有位置。这里的做法不是"悄悄当成一个很小的正数"
(那会画出一条看起来正常、实际是假的线),也不是"静默丢掉"(读者会以为那里本来就没测):
曲线断在这两个点两侧,并且图上明写"有几个点未绘制"。
5 · 缺失值 ≠ 零(这一节是反例自证)
两个序列的非缺失数据完全相同,只有缺失的处理方式不同:
左边把 null 当缺失 ⇒ 曲线断开;
右边把缺失当 0 ⇒ 曲线掉到零再爬回来。
后者画出的是一段不存在的趋势。