我有一个名为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行)要手动执行此操作,这没有用。另外,我使用统计数据来查找最大值,所以我不知道从哪开始就在我的数据文件中产生差距。
答案 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
导致在绘图期间无提示跳过的无效点。