用字符串分组xtics

时间:2013-10-17 14:08:04

标签: plot gnuplot

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

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

怎么可能?

更新:

根据examples,我有一个包含

的数据文件
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

1 个答案:

答案 0 :(得分:1)

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

  1. 使用histogram绘图样式。
  2. 使用rowstacked直方图。
  3. every0

    开始
    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
    
  4. 默认情况下,两个1之间的差距为histograms。如果您希望将它们并排放置,则可以将第二个放置at 2。在这种情况下,您需要将xtics调整回原来的状态。

    这给出了(用4.6.4):

    enter image description here

    如果要在框之间放置抽搐,则必须手动添加。标签之间没有这样的选项:

    1. 将主要抽搐的比例设置为0,将次要抽搐的比例设置为主要抽搐的原始比例:set xtics scale 0,1
    2. 在两个主要抽动之间添加一个小抽动。使用set mxtics 2不起作用,因为那只适用于自动xtics。要添加次要抽搐,请​​使用set xtics add并指定1作为级别来获取次要抽搐:set xtics add (-0.5 1)。您需要手动添加所有抽搐,但使用4.6.x,您可以迭代:set for [i=-1:4] xtics add (i+0.5 i)
    3. 通过这些更改(并使用set boxwidth 0.8和其他一些设置),结果如下(使用4.6.4):

      enter image description here