2015-01-15 26 views
6

ben renk bakın hangi belirten renkler efsanesiyle rgl kullanarak 3d arsa çizmek çalışıyorum için bir efsane ekleme hangi sınıf ('cut.rank' olarak adlandırılır) için:bir rgl 3d arsa

plot3d(
data.focus$normalized.price_shipping, 
data.focus$seller_feedback_score_rank, 
data.focus$seller_positive_feedback_percent_rank, 
col=as.factor(data.focus$cut.rank), 
size=1, 
type='s', 
xlab = 'Normalized Price', 
ylab = 'Seller Feedbacl Score Rank', 
zlab = 'Seller Positive Feedback Percent Rank', 
main = 'Rank By Price, Feedback score and Positive Feedback Score', 
sub = 'Search Rank has 3 colored levels', 
colkey = list(length = 0.5, width = 0.5, cex.clab = 0.75)) 
) 

Ama can Efsanenin arsada ortaya çıktığı anlaşılıyor. (Ekli alana bakınız) Herhangi bir fikrin var mı? enter image description here

cevap

10

colkey seçeneğinin plot3d işlevi için geçerli olduğundan emin değilim. Normal 2d parsellerde bir efsane yapacağınız şekilde eklemek yerine legend3d kullanabilirsiniz:

library(rgl) 

#dummy data 
set.seed(1) 
x <- cumsum(rnorm(100)) 
y <- cumsum(rnorm(100)) 
z <- cumsum(rnorm(100)) 
cuts = cut(x = 1:length(x), breaks = 3) 

# open 3d window 
open3d() 

# resize window 
par3d(windowRect = c(100, 100, 612, 612)) 

# plot points 
plot3d(x, y, z, 
     col=rainbow(3)[cuts], 
     size = 2, type='s') 

# add legend 
legend3d("topright", legend = paste('Type', c('A', 'B', 'C')), pch = 16, col = rainbow(3), cex=1, inset=c(0.02)) 

# capture snapshot 
snapshot3d(filename = '3dplot.png', fmt = 'png') 

enter image description here

Güncelleme: colkeyplot3d fonksiyonu olarak aynı değildir plot3D pakette scatter3D bir argüman (olduğu rgl paketinde). Siz de bu kullanabilirsiniz:

library(plot3D) 
scatter3D(x,y,z, col = rainbow(3)[cuts], colvar = NA, colkey = F, pch = 16) 
legend("topright", paste('Type', c("A", "B", "C")), pch = 16, col = rainbow(3), cex=1, inset=c(0.02,0.2)) 

enter image description here