2014-06-30 38 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

這是行得通的。謝謝! –