2014-05-21 72 views
1

我正在绘制数据文件中的曲面。我想删除平行于x轴的网格线。Gnuplot:如何在平面图中移除平行于x轴的网格线

这里是我的代码:

set xlabel 'x'; 
set ylabel 'y'; 
splot "-" using 1:2:3 notitle w l; 
1 1.0 0.998 
1 2.0 0.998 
1 3.0 0.998 
1 4.0 0.998 
1 5.0 0.997 
1 6.0 0.997 
1 7.0 0.997 
1 8.0 0.997 
1 9.0 0.997 
1 10.0 0.997 

2 1.0 0.998 
2 2.0 0.997 
2 3.0 0.996 
2 4.0 0.995 
2 5.0 0.995 
2 6.0 0.995 
2 7.0 0.995 
2 8.0 0.994 
2 9.0 0.989 
2 10.0 0.987 

3 1.0 0.997 
3 2.0 0.997 
3 3.0 0.997 
3 4.0 0.997 
3 5.0 0.997 
3 6.0 0.997 
3 7.0 0.996 
3 8.0 0.996 
3 9.0 0.995 
3 10.0 0.994 

4 1.0 0.997 
4 2.0 0.996 
4 3.0 0.993 
4 4.0 0.99 
4 5.0 0.986 
4 6.0 0.982 
4 7.0 0.977 
4 8.0 0.974 
4 9.0 0.966 
4 10.0 0.959 
e 

这将产生:

enter image description here

我需要的是:

enter image description here

第二个数字是通过将生产一个虚拟数据线:

2 11.0 0.987 

但是,我从负载的数据文件绘图。我无法修改每个数据文件来添加虚拟数据行。是否可以不添加虚拟数据线来产生第二个数字?

回答

2

最简单的方法是用两条空行替换每一条空行。然后,每个x值都有一个数据块。而在不同的块点不相互连接:

文件data.txt包含:

1 1.0 0.998 
1 2.0 0.998 
1 3.0 0.998 
1 4.0 0.998 
1 5.0 0.997 
1 6.0 0.997 
1 7.0 0.997 
1 8.0 0.997 
1 9.0 0.997 
1 10.0 0.997 

2 1.0 0.998 
2 2.0 0.997 
2 3.0 0.996 
2 4.0 0.995 
2 5.0 0.995 
2 6.0 0.995 
2 7.0 0.995 
2 8.0 0.994 
2 9.0 0.989 
2 10.0 0.987 

3 1.0 0.997 
3 2.0 0.997 
3 3.0 0.997 
3 4.0 0.997 
3 5.0 0.997 
3 6.0 0.997 
3 7.0 0.996 
3 8.0 0.996 
3 9.0 0.995 
3 10.0 0.994 

4 1.0 0.997 
4 2.0 0.996 
4 3.0 0.993 
4 4.0 0.99 
4 5.0 0.986 
4 6.0 0.982 
4 7.0 0.977 
4 8.0 0.974 
4 9.0 0.966 
4 10.0 0.959 

现在用

splot '< sed "s/^$/\n/g" data.txt' w l 

绘制这让

enter image description here

如果您不能使用sed,您必须使用类似于plot matrix with lines gnuplot中显示的方法:

stats 'data.txt' nooutput 
splot for [i=0:STATS_blank] 'data.txt' every :::i::i lt 1 w l