在水平彩盒的另一边的cbtics标签

时间:2014-07-23 10:06:40

标签: gnuplot

假设我有以下脚本来制作一种等值线图。

set colorbox horizontal user origin 0.1, 0.9 size 0.8, 0.05
set pm3d map
splot x*y

这给出了以下结果。

Sample image

现在,我想要实现的是,ticklabels自动结束在colorbox的相对位置。我怎么能这样做?

我试过了:

  • set cbtics mirror,但这并没有改变任何事情。
  • 我试过set cbtics offset 0,3。这原则上有效,但我每次都要调整它。

我的gnuplot版本是4.6.2

1 个答案:

答案 0 :(得分:0)

这是使用multiplot的一种繁琐的解决方法。 这有点冗长,但至少应该摆弄一下,以便在更改画布大小时找到适当的小样标签偏移量。 它与gnuplot 4.6(OP提出问题的时间)一起使用。在当前的gnuplot版本中,它看起来可能略有不同,但是可以使用参数CBHeight, CBWidth, CBPosX, CBPosY进行调整。

可能的改进:我还没有找到如何自动制作颜色框的方法,例如与图形相同的宽度,并使用GPVAL_...变量将其居中放置在图形上。

代码:

### horizontal color bar with xtics on top
reset

set multiplot 

    # actual plot
    unset colorbox
    set size square
    set pm3d map
    set isosamples 100
    set samples 100
    splot sin(1.3*x)*cos(.9*y)+cos(.8*x)*sin(1.9*y)+cos(y*.2*x) notitle

    # horizontal "pseudo" colorbar with tic labels on top 
    # size of colorbox in screen coordinates
    CBHeight = 0.04
    CBWidth  = 0.49
    CBPosX   = (1 - CBWidth)/2   # centered
    CBPosY   = 0.87
    set origin CBPosX,CBPosY
    set size nosquare CBWidth,CBHeight
    set lmargin 0; set tmargin 0; set rmargin 0; set bmargin 0
    unset pm3d
    unset tics
    unset key
    set x2tics out nomirror scale 1.0,0 offset 0,0 
    set colorbox horizontal user origin graph 0, graph 0 size graph 1, graph 1
    set xrange [GPVAL_CB_MIN:GPVAL_CB_MAX]
    plot x palette  # dummy plot
    
unset multiplot
### end of code

结果:(由gnuplot 4.6.0生成)

enter image description here