GNUPLOT中的层次轴

GNUPLOT中的层次轴,plot,gnuplot,hierarchical-data,gnuplot-iostream,Plot,Gnuplot,Hierarchical Data,Gnuplot Iostream,我正在尝试使用GNUPLOT绘制一个图形,但我希望有一个分层的x轴,它应该是x轴上的六个刻度点,x轴上的第一级标签是32,64128,32,64和128。在这里,第一个32、64和128应分组为模具,第二个32、64和128应分组为第二级标签中的菱形。目前我正在以stencil-32、stencil-64、stencil-128、diamond-32、diamond-64和diamond-128的形式进行此操作。有没有办法将其更改为层次轴标签?如果我正确理解您对层次轴的含义,以下代码可能是许多其

我正在尝试使用GNUPLOT绘制一个图形,但我希望有一个分层的x轴,它应该是x轴上的六个刻度点,x轴上的第一级标签是32,64128,32,64和128。在这里,第一个32、64和128应分组为模具,第二个32、64和128应分组为第二级标签中的菱形。目前我正在以stencil-32、stencil-64、stencil-128、diamond-32、diamond-64和diamond-128的形式进行此操作。有没有办法将其更改为层次轴标签?

如果我正确理解您对层次轴的含义,以下代码可能是许多其他代码的一种可能方式。 您可以简单地增加底部边距并添加一些标签。但如果您想拥有一些轴,使用multiplot可能是一种选择。您需要确保页边距相同(尤其是左页边距)

代码:

### hierarchical axis
reset session

$Data <<EOD
1    stencil   32   0.3
2    stencil   64   0.4
3    stencil  128   0.5
4    diamond   32   0.6
5    diamond   64   0.7
6    diamond  128   0.8
EOD

myBottomMargin = 0.12
myColor(col) = strcol(col) eq "stencil" ? 0xff0000 : 0x0000ff

set multiplot

    set origin 0, myBottomMargin
    set size 1, 1-myBottomMargin
    set lmargin screen 0.1
    set style fill solid 1.0 
    set boxwidth 0.8
    set yrange [0:1]
    plot $Data u 0:4:(myColor(2)):xtic(3) w boxes lc rgb var notitle
    
    set origin 0, 0
    set size 1, myBottomMargin
    set border 1    # only bottom border
    set xtics nomirror
    set xrange [0.5:2.5]
    set mxtics 2
    set xtics 1 add ("stencil" 1, "diamond" 2) scale 0,1
    set yrange [0:1]
    unset ytics
    unset key
    plot NaN  # dummy plot just for the extra axis
    
unset multiplot
### end of code
层次轴 重置会话
也许是数据。但是我不熟悉你用来描述你想要什么的术语。你能提供一个图片或者一个链接到一个展示例子的图片吗?