1

我想在 gnuplot 中对一些抽动进行分组。例如,x 轴应该看起来像

|  program 1 | program 2 | program 3 | program 4 |
|          group 1       |       group 2         |

怎么可能?

更新:

根据示例,我有一个数据文件包含

10
20
30
40

所以我写了

set xtics ("program 1" 0, "program 2" 1, "program 3" 2, "program 4" 3)
plot \
newhistogram "group 1", "data.txt" every ::1::2 with boxes, \
newhistogram "group 2", "data.txt" every ::3::4 with boxes

但情节不包含程序 3 和 4

4

1 回答 1

1

以下是您必须更改脚本的方法:

  1. 使用histogram绘图样式。
  2. 使用rowstacked直方图。
  3. every开始于0

    set offset 0,0,1,0
    set style data histogram
    set style histogram rowstacked title offset 0,-1
    set bmargin 4
    set xtics ("program 1" 0, "program 2" 1, "program 3" 3, "program 4" 4)
    plot newhistogram " \n group 1" , "data.txt" every ::0::1, \
         newhistogram "group 2", "data.txt" every ::2::3
    

1默认情况下,这会在两者之间留下一个差距histograms。如果您希望它们并排放置,您可以将第二个放置在at 2. 在这种情况下,您需要将xtics背面调整为您所拥有的。

这给出(4.6.4):

在此处输入图像描述

如果您想将抽动放置在框之间,则必须手动添加它们。没有这样的选项可以让标签之间出现抽动:

  1. 将主要抽动的标度设置为0,将小抽动的标度设置为主要抽动的原始标度:set xtics scale 0,1
  2. 在两个主要抽动之间添加一个小抽动。使用set mxtics 2不起作用,因为那仅适用于自动 xtics。要添加轻微抽动,请使用set xtics add并指定1为 level 以获得轻微抽动:set xtics add (-0.5 1). 您需要手动添加所有抽动,但使用 4.6.x 您可以迭代set for [i=-1:4] xtics add (i+0.5 i)

通过这些更改(以及使用set boxwidth 0.8和其他一些设置),结果如下(使用 4.6.4):

在此处输入图像描述

于 2013-10-17T18:14:48.197 回答