2017-04-03 3 views
0

내 다 변수 데이터 세트의 주요 구성 요소를 계산하고 처음 3 가지 주요 구성 요소 점수를 rgl::plot3d 인 3 차원 대화 형 플롯의 구체로 표시합니다. 불행하게도 3D 플롯의 어느 구가 내 데이터 세트의 어떤 관찰과 일치하는지 항상 명확하지는 않습니다. 클릭 한 구의 인덱스를 반환하는 마우스 콜백을 추가하는 간단한 방법이 있습니까?RGL plot3d에서 마우스를 사용하여 요소를 선택하는 방법?

# For example, I plot iris 
library(rgl) 
with(iris, plot3d(Sepal.Length, Sepal.Width, Petal.Length, 
         type="s", col=as.numeric(Species))) 

# Now I click on some data points and want to get their indices 
# how? 

것은 내가 WebGL user interaction tutorial을 확인했지만, 그러한 기능을 언급하지 않습니다. 나는 또한 translationMatrixrgl.setMouseCallbacks의 멋진 조합으로 플롯 좌표에서 마우스 포인터의 위치를 ​​얻은 다음 가장 가까운 요소에 잠재적으로 링크 할 수 있다고 생각했지만 복잡 할 것 같습니다.

+1

당신은에서 plotly보고 할 수 있습니다 : https://plot.ly/r/3d-scatter-plots/ –

+0

감사합니다, 그건 좋은 지적이야 여기에 최소한의 일 예이다. 음모의 능력은 정말 인상적으로 보입니다. 나는 그것을 시험해 보겠습니다. –

+0

plot.ly 3d는 내가 말할 수있는 한 rgl의 flexibilite 근처에 어디에도 없다. 운수 나쁘게. 선분을 그리는 방법조차 가지고 있지 않습니다. –

답변

1

좋아, 질문에 Have names on the spheres built by rgl package plot3danswer 언급 함수보다 rgl::identify3d 발견했습니다. 그것은 내가 찾고있는 것을 정확하게합니다.

library(rgl) 
attach(iris) 
plot3d(Sepal.Length, Sepal.Width, Petal.Length, 
     type="s", col=as.numeric(Species)) 
pts <- identify3d(Sepal.Length, Sepal.Width, Petal.Length, 
     labels = rownames(iris)) 
# Use the right button to select, the middle button to quit 

pts 
# [1] 120 107 42 14 2 106 118 
detach(iris) 

iris[pts, ] # get selected observations 
관련 문제