【问题标题】:gnuplot - adding label for the median to the right-hand side of the diagramgnuplot - 将中位数标签添加到图表的右侧
【发布时间】:2016-06-29 05:15:00
【问题描述】:

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

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

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

【问题讨论】:

    标签: plot statistics label gnuplot median


    【解决方案1】:

    您可以使用标签。语法是

    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 个字符的字符串提供足够的空间。

    举个例子,假设我们的数据看起来像

    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 轴并用字面意思指定 tic 标记来实现替代方法

    set link y
    set y2tics ("%0.2f" STATS_median)
    plot datafile w points pt 7
    

    这里的优点是边距是自动计算的。但是,当您在其他地方需要标签时,这是不可能的。

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-22
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多