如何在x轴上引入相对位移时在gnuplot行中添加间隙?

时间:2016-11-30 18:13:55

标签: gnuplot

我有一个名为data_file.dat的数据文件,它有两列和10行,如下所示:

   #1   2
   1    2
   2    4
   3    6
   4    8
   5    16
   6    9
   7    7
   8    5
   9    3
   10   2 

我正在使用gnuplot用线绘制数据点,我必须在x轴上产生相对位移,x值对应于最大y位于原点。为此,我用这个:

    stats "data_file.dat" u 2 name "A"
    stats 'data_file.dat' using 1 every ::A_index_max::A_index_max nooutput
    A_pos_max_y = STATS_max
    plot 'data_file.dat' u ($1<A_pos_max_y ? $1+10-A_pos_max_y : $1-A_pos_max_y):2 w l

输出为this。我需要删除连接x的初始值和最终值的y值的行。如何在这两点之间形成“差距”?

我检查了这个解决方案How to add a gap in gnuplot line?,但由于我没有“缺失点”而我的文件太大(超过10行)要手动执行此操作,这没有用。另外,我使用统计数据来查找最大值,所以我不知道从哪开始就在我的数据文件中产生差距。

1 个答案:

答案 0 :(得分:0)

您必须分别绘制两个部分:

stats "data_file.dat" u 2 name "A"
stats 'data_file.dat' using 1 every ::A_index_max::A_index_max nooutput
A_pos_max_y = STATS_max

set style data lines
plot 'data_file.dat' u ($1<A_pos_max_y ? $1+10-A_pos_max_y : 1/0):2 lt 1
    '' u ($1 >= A_pos_max_y ? $1-A_pos_max_y : 1/0):2 lt 1 t ''

1/0导致在绘图期间无提示跳过的无效点。