gnuplot - 添加中位数以绘制带有误差线和对数刻度的 x 轴

gnuplot - adding median to plot with errorbars AND logscale'd x-axis

所以我有一些格式为

的数据文件
x y ymin ymax

我正在用 yerrorbars 绘图。

现在,我如何最好地将 y 值的中位数添加到整个 x 范围内的图 运行?

更新

我还在 logscale 中绘制 x 轴,这似乎阻止了使用 STATS

假设您的数据如下所示:

1 8 6 9
2 6 5 7
3 5 4 8
4 6 5 8

我们可以使用stats命令来求中位数。使用类似于 plot 命令。这里,我们只需要对第二列做分析,所以我们只指定第二列:

stats datafile u 2 nooutput

nooutput 选项告诉命令不打印结果。如果我们希望看到完整的分析,我们只需省略该说明即可。默认情况下,stats 命令将其结果存储在 STATS_* 形式的变量中。如果需要,我们可以使用不同的前缀。有关详细信息,请参阅 help stats

此时,我们有一个变量STATS_median,用于存储y值的中位数(样本数据为6)。我们现在可以通过以下两种方式之一将中位数添加到图表中。首先,我们可以简单地向现有绘图命令添加绘图规范:

plot datafile u 1:2:3:4 with yerrorbars, STATS_median

或者我们可以使用 set arrow 命令添加一行,然后仅绘制 yerrorbars:

set arrow 1 from graph 0, first STATS_median to graph 1, first STATS_median nohead
plot datafile u 1:2:3:4 with yerrorbars

这里我们给出了图形单位的 x 坐标,范围从 0(左侧)到 1(右侧),y 坐标在 first 坐标系中对应于 y1 轴。指定 nohead 表示不绘制箭头。紧跟在 set arrow 之后的 1 将此箭头标记为箭头 1,以便我们稍后可以轻松更改或删除它。

还有其他选项可用。有关详细信息,请参阅 help arrow