2017-01-02 3 views
1

plot3d()에서 rgl을 사용하여 데이터 프레임의 샘플 3 개를 사용하여 3D 산점도를 만듭니다. 또한, 제 4 열 colorby 내 데이터 프레임 (각 샘플 값, 말, 10, 11, 12 인자/수준으로 소요)에서 플롯에서 포인트를 색 사용하고 있습니다.R plot3d 착색

2D 플롯을 만들기 위해 plot()를 사용하여, 내가 먼저 palette(rainbow(3)) 설정 한 다음 col = colorbyplot() 내에는 legend() 하였다. 음모, 색상 및 범례가 잘 작동합니다.

그러나 마지막 부분을 plot3d()으로 반복하면 색이 바래고 동일한 색이 plot()과 같은 색으로 지정되지 않습니다. 또한, 범례를 만들 때 legend3d("topright", legend = levels(colorby), col = rainbow(3))을 사용하면 2D 범례와 동일하게 보이지만 3D 플롯에서 색상이 분명히 잘못되었습니다.

어디로 잘못 가고 있습니까? 미리 감사드립니다.

답변

1

이 나에게 올바른 같습니다 실제로 잘 작동

df <- data.frame(x=1:9, y=9:1, z=101:109, colorby=gl(3,3)) 
palette(rainbow(3)) 
plot(x~y, df, col = df$colorby) 
library(rgl) 
with(df, plot3d(x,y,z, col = colorby)) 
legend3d("topright", legend = levels(df$colorby), col = levels(df$colorby), pch=19) 
+0

. 내'legend3d()'코드에서'col = levels (df $ colorby) '를 사용하는 것과는 반대로 _different_ 및 _incorrect_ 범례를 제공하는'col = 1 : length (df $ colorby)'를 사용한다는 것을 알았습니다. 왜 그런가? – user334263

+0

두 가지 다른 벡터입니다. 왜 그 사람들이 똑같을 것이라고 생각하니? 자네가 1시 9 분, 루케아가 c ("1", "2", "3")를 준다. 두 번째 문자가 문자 벡터라는 사실은 중요하지 않습니다. 두 문자가 서로 다른 값을 포함한다는 사실은 중요하지 않습니다. – user2554330