gnuplot - 将中位数标签添加到图表的右侧

gnuplot - adding label for the median to the right-hand side of the diagram

我正在使用 gnuplot 的 STATS 绘制一些数据的中值。

在图表的右侧,中位数与图表边界相交的地方,我想放置一个标签,说明中位数的值 - 或者它占预定最大值的百分比。

我怎样才能最好地做到这一点?

您可以使用标签。语法是

set label id "text" at x-coordinate,y-coordinate

其中 id 是可选的(但如果您需要更改标签或稍后将其删除则很有用)。请参阅 help label 了解所有选项(包括对齐方式和字体选项)。

另请注意,gnuplot 有多个坐标系。有关这些的信息,请参阅 help coordinates

要在 y 坐标 10 的右侧放置一个带有中值的标签(例如),您可以使用如下命令:

set label 1 sprintf("%f",STATS_median) at graph 1, first 10

我们使用 sprintf 将数值转换为标签的字符串。我们为 x 坐标指定图形坐标系。该系统从 0(左)到 1(右)运行,同样对于从上到下的 y 值。当我们需要在不知道确切坐标的情况下解决相对位置时,它很有用。我们为 y 坐标指定第一个坐标系。该系统对应于 x1 和 y1 轴使用的系统。

请注意,在图表外放置标签时(我们已在此处完成),有时需要增加边距。有关详细信息,请参阅 help margins。像 set rmargin 15 这样的命令将为右侧的 15 个字符的字符串提供足够的 space。

举个例子,假设我们有这样的数据

8
9
15
3
6

然后我们可以绘制它,在中间画一条线并用

标记
stats datafile nooutput
set arrow 1 from graph 0, first STATS_median to graph 1, first STATS_median nohead
set label 1 sprintf("%0.2f",STATS_median) at graph 1, first STATS_median offset char 1,0
set rmargin 5
plot datafile w points pt 7

这会产生以下结果

请注意,我们在字符坐标系中指定了标签上的偏移量,这允许我们将其向右移动一个字符宽度。


在此示例中,可以通过使用 y2 轴并使用

逐字指定刻度线来实现替代方案
set link y
set y2tics ("%0.2f" STATS_median)
plot datafile w points pt 7

这里的优点是保证金是自动计算的。但是,当您在别处需要标签时,这是不可能的。