gnuplot:强大的绘图范围

gnuplot: robust plot range

数据集中经常存在异常值。 gnuplot 使用数据的最小值和最大值进行自动缩放。 但是有什么想法可以使缩放对异常值具有鲁棒性吗?我正在考虑 bind 和一个计算 quantiles/percentiles.

的函数
array DATA[1000]
do for [i=1:1000] {DATA[i]=invnorm(rand(0))}
DATA[42] = 1e7

pl DATA pt 7
pl [][-4:4] DATA pt 7

经过大量交互式缩放或手动调整绘图范围后:

stats 命令将报告四分位数。您可以使用来自 stats 的先前结果绑定击键以在 y 上重新缩放。使用中位数 +/- 1.5 *(inter-quartile 范围)将给出与 boxplot.

上的默认晶须条相同的总体范围
bind 'S' 'set yrange [ STATS_median_y - 1.5 * (STATS_up_quartile_y-STATS_lo_quartile_y) : STATS_median_y + 1.5 * (STATS_up_quartile_y-STATS_lo_quartile_y) ]; replot'

stats DATA using 1:2
plot DATA using 1:2
pause -1 "Type 'S' in plot window to rescale"

比较
plot DATA using 1:2 with boxplot