gnuplot的:怎样去除网格线平行于x轴的表面图(Gnuplot: How to remove m

2019-10-20 03:46发布

我从一个数据文件绘制的表面。 我想删除平行于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

这将产生:

我需要的是:

第二个数字是通过将伪数据线产生的:

2 11.0 0.987

但是,我从数据文件中的负载绘制。 我不能修改每个数据文件,添加一个伪数据线。 是否有可能不加入伪数据线产生第二个数字?

Answer 1:

最简单的方法是用两个空行来代替每个空行。 然后,你必须为每个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

要得到

如果你不能使用sed ,您必须使用类似于所示的一个办法情节矩阵GNUPLOT行 :

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


文章来源: Gnuplot: How to remove mesh line parallel to x axis in surface plot