tic标记在Gnuplot中的位置

tic标记在Gnuplot中的位置,gnuplot,Gnuplot,我正在寻找一种在轴之间的gnuplot中定位tic标记的方法,但到目前为止,我只找到了将它们放入或取出的解决方案: set tics in 将所有tic标记放在画布内 set tics out 将所有tic标记放在画布外 set tics out 我所要做的就是在轴的两边都画上tic标记 --l--l-- 谢谢你的提示 如评论中所述,似乎不可能将TIC放置在轴的两侧。解决方法是绘制两次轴,或用设置箭头手动绘制tic 手工绘制tics: 请考虑以下设置: Xmin = -4.0

我正在寻找一种在轴之间的gnuplot中定位tic标记的方法,但到目前为止,我只找到了将它们放入或取出的解决方案:

set tics in
将所有tic标记放在画布内

set tics out
将所有tic标记放在画布外

set tics out
我所要做的就是在轴的两边都画上tic标记

--l--l--


谢谢你的提示

如评论中所述,似乎不可能将TIC放置在轴的两侧。解决方法是绘制两次轴,或用
设置箭头
手动绘制tic

  • 手工绘制tics:

    请考虑以下设置:

    Xmin = -4.0             # range in x
    Xmax =  4.0
    Ymin = -1.2             # range in y
    Ymax =  1.2
    
    NXtics = 8              # number of Xtics
    NYtics = 4              # number of Ytics
    
    epsX = 0.05             # length of Xtics
    epsY = 0.03             # length of Ytics
    
    dX = (Xmax-Xmin)/NXtics     # distance between Xtics
    dY = (Ymax-Ymin)/NYtics     # distance between Ytics
    
    接下来,我们绘制底部、顶部、左侧和右侧抽动:

    # xtics and x2tics
    do for [i=0:NXtics] {
      posX = Xmin+i*dX
      set arrow from posX,Ymin-epsY to posX,Ymin+epsY nohead front    # bottom
      set arrow from posX,Ymax-epsY to posX,Ymax+epsY nohead front    # top
    }
    
    # ytics and y2tics
    do for [i=0:NYtics] {
      posY = Ymin+i*dY
      set arrow from Xmin-epsX,posY to Xmin+epsX,posY nohead front    # left
      set arrow from Xmax-epsX,posY to Xmax+epsX,posY nohead front    # right
    }
    
    由于您是手动绘制TIC,因此需要配置轴编号和范围:

    set xtics Xmin,dX,Xmax scale 0 offset 0,-epsY
    set ytics Ymin,dY,Ymax scale 0 offset -epsX,0
    
    set xrange [XMIN:XMAX]
    set yrange [YMIN:YMAX]
    
    最后,你高度复杂的情节:

    plot sin(x)
    
    结果:

    此方法还允许您

  • 两次绘制轴:

    这种方法比较简单;但您需要设置画布的边距,并使用
    multiplot
    模式:

    set tmargin at screen 0.9   # top margin
    set bmargin at screen 0.2   # bottom
    set lmargin at screen 0.2   # left
    set rmargin at screen 0.9   # right
    
    set yrange [-1.2:1.2]
    set multiplot
      set tics scale 0.5      # scale size of the tics
      plot 2 notitle          # a plot outside the canvas, just to draw the axis
    
      set tics out            # tics outside
      set format xy ''        # delete the numbers
      unset border            # delete the border
      plot sin(x)             # your awesome plot
    unset multiplot
    
    结果类似:)


快速肮脏的方法:

set multi
set tics scale 0.5
plot sin(x)/x
set tics out
replot
unset multi
当心,这会给你的图表加上第二张。位图输出应该可以,但如果有矢量输出(pdf、eps),就不要这样做,尤其是当图形复杂或包含大量数据点时。它会将生成的文件放大到其大小的两倍


Gnuplot目前(V5.0pl1)没有将TIC放置在轴中心的选项。您必须使用此处所示的解决方法之一。

欢迎使用StackOverflow,@Eugl!似乎不可能更改tics的位置,如何绘制轴两次(一次绘制tics in,另一次绘制tics out)?看见很抱歉,目前我还没有安装gnuplot,无法对其进行正确测试。感谢Paolo的热情欢迎,并以某种方式确认无法将tic标记重新定位在轴的中间。vagoberto,感谢您提供的详细解决方案。特别是用手画抽搐是非常有帮助的。