2012-07-09 98 views
0

我有描绘表征恒星的点的3D分布的数据。所以简而言之,我在球体内有一个随机的3D点分布。我想做一个所有点的三维图,除了所有的点都在x> = 0,y> = 0,z> = 0扇区内。那就是我想砍掉球体的1/8。我的尝试:使用条件绘图绘制扇区切割数据(Gnuplot)

spl 'data' u ($2>=0.?($3>=0.?($4>=0.?1/0:$2):$2):$2):3:4:7 w d lc palette z 

什么都不做。我的意思是,它似乎在绘制一切。列是$ 2 = x,$ 3 = y,$ 4 = z和$ 7的大小,给点颜色。

任何想法我做错了什么?

谢谢!

+0

您的过滤器看上去还不错。也许尝试'lc调色板cb'而不是'lc palette z'? – mgilson 2012-07-09 15:10:17

回答

1

您的条件语法似乎至少是正确的。用下面的数据文件:

1 1 1 1 
1 -1 1 2 
1 1 -1 3 
1 -1 -1 4 

-1 1 1 5 
-1 -1 1 6 
-1 1 -1 7 
-1 -1 -1 8 

命令

spl 'data.dat' u ($1>=0.?($2>=0.?($3>=0.?1/0:$1):$1):$1):2:3:4 w points pt 7 ps 3 palette z 

产生这样的输出: enter image description here

的点(1,1,1)不存在的,因为它应该的。这是使用gnuplot 4.6.0。当我尝试命令w d lc palette z我看不到任何东西,或许with dots选项的行为有所不同?

+0

'w dots lc palette z'也适用。点很小,以至于很难用数据文件查看。 +1来提供良好的测试数据/演示。 – mgilson 2012-07-09 20:11:10