假设我有以下脚本来制作一种等值线图。
set colorbox horizontal user origin 0.1, 0.9 size 0.8, 0.05
set pm3d map
splot x*y
这给出了以下结果。
现在,我想要实现的是,ticklabels自动结束在colorbox的相对位置。我怎么能这样做?
我试过了:
set cbtics mirror
,但这并没有改变任何事情。set cbtics offset 0,3
。这原则上有效,但我每次都要调整它。我的gnuplot
版本是4.6.2
答案 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生成)