gnuplot | 3D图层

时间:2013-12-17 22:49:56

标签: gnuplot

我有以下数据文件: 第1列是图层编号。 第二列是X轴。 第3列是Y轴。

1   1999-01-19  21  0   1
1   2009-07-01  0   1   1
1   2008-08-20  2   1   1
1   2008-12-18  1   1   1
2   2004-05-12  4   1   1
2   2009-07-29  2   1   1
3   2008-08-07  0   1   1
4   2006-03-08  1   1   1
4   2004-08-31  9   1   1
4   2001-03-27  12  1   1

我的问题:  1.如何知道每层必须具有不同的Z偏移和不同的颜色,我如何在3D中绘制上述数据文件? 以下必须用Z = 1

绘制
1   1999-01-19  21  0   1
1   2009-07-01  0   1   1
1   2008-08-20  2   1   1
1   2008-12-18  1   1   1

和以下,Z = 2

2   2004-05-12  4   1   1
2   2009-07-29  2   1   1

等等。

2.如果我想选择第2层,其他图层必须用灰色阴影,此图层必须用红色着色,例如,这可能吗?所以就像突出显示所选图层一样。

THX。

1 个答案:

答案 0 :(得分:1)

要绘制点,只需使用

set xdata time
set timefmt '%Y-%m-%d'
set format x '%Y'
splot 'data.dat' using 2:3:1

使用图层编号作为z值。要获得其他内容,只需根据图层编号指定z值的函数:

zpos(z) = 1 + 0.5*z
splot 'data.dat' using 2:3:(zpos($1))

使用着色linecolor rgb variable。这允许您指定最后一列中的颜色。此颜色必须是rgb-tuple的整数表示形式,65536*red + 256*green + blueredgreenblue在[0:255]范围内。

以下脚本以深红色绘制第2层中的点:

set xdata time
set timefmt '%Y-%m-%d'
set format x '%Y'

rgb(r,g,b) = 65536*r + 256*g + b
gray = rgb(200,200,200)
red = rgb(200,0,0)
layer = 2
set view 66,20
splot 'data.dat' using 2:3:1:($1 == layer ? red : gray) with points pt 7 linecolor rgb variable notitle

4.6.4的结果是:

enter image description here