2017-12-17 6 views
0

나는 전설로 음모를 꾸몄다.분산 형 플롯의 범례를 편집하는 방법은 무엇입니까?

scatter3d(x = red, y = green, z = blue, groups = C1class$V1, surface. col = 1:21, 
     grid = FALSE, surface = FALSE) 
legend3d("right", legend = levels(C1class$V1), 
    col = rainbow(21), pch = 16, inset = -0.25, xpd = TRUE) 

하지만 내 그래프는 다음과 같습니다 :이 코드에 의해

enter image description here

어떻게 더보고 편집 할 수 있습니다?
문제 해결을 도와 줄 수 있습니까?
도움 주셔서 감사합니다.

+0

어떻게 보이시겠습니까? 플롯을 복제하기 위해 몇 가지 샘플 데이터를 제공 할 수 있습니까? – Therkel

+0

음모에 대한 전설이 보이기를 원합니다. – TheMentee

답변

0

데이터를 제공하지 않으므로 정확하게 문제를 테스트 할 수 없습니다. 하지만 아래의 예는 문제 해결에 도움이 될 것입니다.

귀하의 문제는 매개 변수 inset = -0.25을 포함하고 있다고 생각됩니다. 범례가 표시 영역 밖으로 이동하고 있습니다. 귀하의 사진을 보니, 그 이유는 그렇지 않다면 범례가 산점도의 일부를 덮고 있기 때문입니다. 이 문제를 해결하는 다른 방법은 더 많은 공간을 허용하기 위해 windowRect을 사용하여 도면 영역을 조정하는 것입니다.

잘 자른 전설이있는 당신의 그림.

scatter3d(x = iris[,1], y = iris[,2], z = iris[,3], groups = iris[,5], 
    surface.col = rainbow(3), grid = FALSE, surface = FALSE) 
legend3d("right", legend = levels(iris[,5]), 
    col = rainbow(3), inset = -0.25, pch = 16, xpd = TRUE) 

Cropped legend


오목없이 두 번째 플롯

. 이제 전설이 음모에 겹칩니다. 마지막으로

Legend overlaps plot


scatter3d(x = iris[,1], y = iris[,2], z = iris[,3], groups = iris[,5], 
    surface.col = rainbow(3), grid = FALSE, surface = FALSE) 
legend3d("right", legend = levels(iris[,5]), 
    col = rainbow(3), pch = 16, xpd = TRUE) 

은 창 크기는 전설에 대한 더 많은 공간을 허용하도록 조정됩니다.
par3d(windowRect = c(100, 100, 600, 350)) 
scatter3d(x = iris[,1], y = iris[,2], z = iris[,3], groups = iris[,5], 
    surface.col = rainbow(3), grid = FALSE, surface = FALSE) 
legend3d("right", legend = levels(iris[,5]), 
    col = rainbow(3), pch = 16, xpd = TRUE) 

Desired result

당신은 당신의 데이터를 다르게 windowRec을 조정해야 할 수도 있지만,이 설정은 시작하기 좋은 장소가 될 것입니다

.

+0

고맙습니다. 그것은 나를 많이 돕는다. – TheMentee

+0

안녕 G5W, 잘 지내기를 바랍니다. 나는 최근 R 함수에서 질문을 만났다. 다만 당신에게 흥미로울지도 모른다 경우에, 당신은 생각한다 [*이 질문 *] (https://stackoverflow.com/questions/47857624/r-function-that-uses-its-output-as-its-own -input)에 해결책이있을 수 있습니까? – rnorouzian

관련 문제