我有一个使用x刻度的数据集:

0.1 0.4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

但是我需要抽签均匀地排列,而不是将0.1和0.4弯腰。我目前正在使用,

set xtics 1
set xtics add (0.1)(0.4)

但是,该空间分别对应于其余比例尺0.1和0.4。我已将指向我当前问题的虚拟数据集上载的tinypic附加了链接。

http://tinypic.com/r/2zfolxf/7

最佳答案

当前状态

据我所知,您可以使用tic在gnuplot中执行以下操作(至少与您的问题相关):

  • 您可以指定显示的tic的开始,增加和结束。
    如果您只想在2之类的值之后简单设置tic,这对您来说很有意义
    set xtics 2, 1
    
  • 您可以做的另一件事是为某些值添加显式tic标签,例如
    set xtics add ("0.1" 0, "0.4" 1)
    

    这会将标签0.1和0.4引入x刻度,其中实际值为0和1

  • 但是,您不能修改图形的实际绘图。如果在您的数据中,则说明
    0.1 100
    0.4 150
    1   200
    2   300
    

    然后gunplot将对其进行相应绘制。

    可能的解决方法

    解决方法如下所示:
  • 从2向上绘制法线图。
  • 使用以下方法对前两个值进行一些黑客操作:
    plot "Data.dat" every 1::2 w l, "" every 1::1::2 using ($1<magic>):($2)
    

  • magic指定您要对第一列进行的一些代数运算。
    一切都是允许的,如果您的值是常数,则可以指定一个多项式,该多项式经过点0、1和2,输入为0.1、0.4和1,如下所示:
    y = -1.85*x^2 + 4.26*x - 1.4
    



    假设您有以下数据文件:
    0.1 0.41
    0.4  0.03
    1 0.97
    2  0.74
    3  0.05
    4  0.15
    5   0.11
    6 0.60
    7 0.76
    8 0.25
    

    然后,您可以像下面这样将前两个条目“重新排列”到x位置-1和0:
    plot "Data.dat" every 1::2 w l, \
    "" every 1::0::2 using (-1.85*$1**2 + 4.26*$1 - 1.4):($2) w l
    

    通过一些tic-labeling和线条样式设置,它应该看起来像您想要的。

    我希望我了解您的需求,并希望您可以利用我的建议。
    切里奥
    卧龙

    10-08 17:40