Plot 用字符串分组XTIC

Plot 用字符串分组XTIC,plot,gnuplot,Plot,Gnuplot,我想在gnuplot中对一些tic进行分组。例如,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)

我想在gnuplot中对一些tic进行分组。例如,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,以下是您必须更改脚本的方式:

  • 使用
    直方图
    打印样式
  • 使用
    行堆叠
    直方图
  • 每个
    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
    的间隙。如果要将它们并排放置,可以将第二个放置在2处的
    。在这种情况下,您需要将
    xtics
    调整回原来的状态

    这给出了(见第4.6.4节):

    如果要在框之间放置tic,则必须手动添加它们。没有这样的选项可以在标签之间设置TIC:

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


    以下是您必须如何更改脚本:

  • 使用
    直方图
    打印样式
  • 使用
    行堆叠
    直方图
  • 每个
    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
    的间隙。如果要将它们并排放置,可以将第二个放置在2处的
    。在这种情况下,您需要将
    xtics
    调整回原来的状态

    这给出了(见第4.6.4节):

    如果要在框之间放置tic,则必须手动添加它们。没有这样的选项可以在标签之间设置TIC:

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


    您可以手动放置一些标签。如果你还想把所有这些线都当作抽搐?如何做到这一点取决于灵活性,这些标签信息来自哪里(数据文件?),等等。也许你可以更精确一点,因为这是不可能开箱即用的,除非你正在处理直方图,请参阅。好的,我理解它,但无法复制它。请参阅更新后的帖子,您可以手动放置一些标签。如果你还想把所有这些线都当作抽搐?如何做到这一点取决于灵活性,这些标签信息来自哪里(数据文件?),等等。也许你可以更精确一点,因为这是不可能开箱即用的,除非你正在处理直方图,请参阅。好的,我理解它,但无法复制它。请参阅更新的post@mahmood我看到了关于设置标签之间的TIC的另一个问题(已删除),正在准备答案。我想它是针对这个用例的,所以我把它附加在这里。@mahmood我看到了关于设置标签之间的TIC的其他问题(已删除),正在准备答案。我想它是针对这个用例的,所以我把它附加在这里。