2014-06-30 26 views
0

我是R的新手,所以有人可以帮忙吗?R中的颜色编码的三维绘图

我有一个数据框有4列:x,y,z和freq。此帧中的一行表示三维空间中的一个点(x,y,z分别是x,y和z坐标)并且是频率。我想绘制这些点,并将这些点着色,以便颜色由频率决定。例如:频率为0的所有点都是蓝色的,1到5之间是红色,5到10之间是橙色,10到15之间是黄色,以此类推。有些点也可以有一个0的频率。但我不知道频率范围。要使用的颜色的最大数量是10.另外,应该有一个尺度解释颜色的含义。

我一直在试图纠正下面的代码,并使其工作,但它`只是不工作:

lev <- levels(factor(t$freq)); 
n <- as.numeric(lev); 
n <- n+1; 
plot3d(t$x,t$z,t$z,col=n); 

请帮帮忙!谢谢。

PS-请使用rgl包告诉解决方案 PPS - 我一直在试图操纵rgl包的plot3d函数中的col争论,但是我无法得到想要的结果。

+0

请添加您问题的示例(数据+代码),以及您迄今为止尝试过的内容。这使人们更容易帮助你。 –

+0

我一直在试图纠正下面的代码,并使其工作,但它只是不工作: lev < - levels(factor(t $ freq)); n < - as.numeric(lev); n < - n + 1; plot3d(t $ x,t $ z,t $ z,col = n); –

+0

我会将这些细节添加到您的原始文章中,而不是作为评论。 –

回答

3

我将加载包RGL

plot3d(x,y,z, col=colors) 

这意味着你应该准备的颜色值的列表是相同的长度作为x,y,z列表,以便为每个x,y,z点选择一种颜色。

其他部分将被列出。我会尝试

givecolor = function(freq){ 
if(freq < 1) "red" 
else if .... 
} 

colors = sapply(mydataframe[,"freq"], givecolor) 
+0

这是行得通的。谢谢! –