R로 아주 간단한 산점도를 레이블링하려고합니다. 이것이 내가 사용하는 것입니다.
plot(SI, TI)
text(SI, TI, Name, pos=4, cex=0.7)
보시다시피 결과는 평범합니다 (확대하려면 클릭하십시오).
textxy
함수를 사용하여 이것을 보완하려고 시도했지만 더 좋지 않습니다 . 밀집된 클러스터에서는 이미지 자체를 더 크게 만들 수 없습니다.
이를 보완하고 겹치지 않는 R 플롯 레이블을 허용하는 기능이나 쉬운 방법이 있습니까?
내가 가진 데이터의 작은 하위 집합은 다음과 같습니다.
Name;SI;TI
01_BAD_talking_head;6.944714;4.421208
01_GOOD_talking_head;5.680141;4.864035
01_GOOD_talking_head_subtitles;7.170114;4.664205
답변
새 패키지 ggrepel을 확인하십시오 . ggrepel은 ggplot2에 겹치는 텍스트 레이블을 격퇴하기위한 도형을 제공합니다. geom_text 및 geom_label 모두에 대해 작동합니다.
이 블로그 게시물 에서 그림을 가져옵니다 .
답변
directlabels
패키지는 않습니다. 그것에서 웹 페이지 :
이 패키지는 격자 및 ggplot2와 같은 고급 플로팅 시스템으로 공통 플롯의 직접 라벨링을 쉽게 수행 할 수있는 유용한 기능을 제공함으로써 일상적인 통계 실습에서 직접 라벨링을 실현하려는 시도입니다.
그러나 밀도가 높은 플롯에는 항상 가능한 것은 아닙니다.
다음은 간단한 예입니다.
set.seed(123)
a <- c(rnorm(10,-3,2),rnorm(10,3,2))
b <- c(rnorm(10,-3,2),rnorm(10,3,2))
dfr <- data.frame(a,b)
dfr$t <- c(paste("A",1:10,sep=""),paste("B",1:10,sep=""))
direct.label(xyplot(b~a,dfr,groups=t, col="black"))
로 포인트 채색을 제거 col="black"
했지만 레이블 은 제거 하지 않았습니다.
답변
wordcloud
패키지를 살펴 보는 것이 좋습니다 . 이 패키지는 요점이 아니라 레이블 자체에 초점을 맞추고 있으며 스타일도 다소 고정 된 것으로 보입니다. 그러나 여전히 그것을 사용하여 얻은 결과는 놀랍습니다. 또한 해당 패키지 버전은 질문 한 시간에 출시되었으므로 여전히 새 버전입니다.
http://blog.fellstat.com/?cat=11
답변
나는 내가 작업하고있는 여러 줄거리에서 비슷한 문제에 부딪 쳤고 힘장 시뮬레이션을 사용하여 객체 위치를 조정하는 기본 패키지를 작성했습니다. 위에서 언급 한 솔루션 중 일부에 대한 장점은 2D의 상대 물체 근접성에 대한 동적 조정입니다. 휴리스틱 및 ggplot과의 통합 등 많은 개선이 가능하지만 작업을 수행하는 것으로 보입니다. 다음은 기능을 보여줍니다.
install.packages("FField", type = "source")
install.packages("ggplot2")
install.packages("gridExtra")
library(FField)
FFieldPtRepDemo()
현재 솔루션이 내 요구를 충족함에 따라 다양한 영역과 포인트 분포에 대한 휴리스틱이 없으며 사람들에게 도움이되는 것을 빨리 얻고 싶지만 중기 적으로 추가 할 것입니다. 현재는 차트를 100×100으로 확장하고 필요에 따라 기본 인력 및 반발 매개 변수를 약간 조정하는 것이 좋습니다.
답변
당신은 단순히하는 경우에 할 수없는 R에 의해 생산으로 제대로 작동하려면 레이블을 얻을, 당신은 항상하고 (.PDF 등) 벡터 형식으로 그래프 저장 잉크 스케이프 나 어도비 일러스트 레이터와 같은 편집 프로그램으로 끌어 오기 명심하십시오.
답변
R에서 살펴볼 몇 가지 추가 도구 :
- 패키지 의
spread.labels
기능plotrix
thigmophobe.labels
의plotrix
패키지- 패키지 의
spread.labs
기능TeachingDemos
- 패키지 의
TkIdentify
기능TeachingDemos
이것들은 당신을 위해 모든 것을하지는 않지만 그중 하나가 해결책의 일부 일 수 있습니다.