2013-08-08 4 views
1

나는 두 레벨 계층 구조를 가진 R treemap package을 사용하여 트리 맵을 만들었습니다.R 트리 맵의 레이블 위치를 어떻게 변경합니까?

내 문제는 일부 레이블이 겹쳐서 하위 수준 계층 레이블을 실제로 볼 수 없다는 것입니다. 맨 페이지의 예제 (아래 참조)에서는 대륙 레이블 (유럽)이 맨 위에 있으므로 우크라이나의 국가 레이블을 볼 수 없습니다. 나는 당신이 작은 글꼴을 만들 수 있다는 것을 알고 있지만, 레이블의 위치를 ​​옮길 수있는 방법이 있습니까? 예를 들어 모든 대륙 이름을 볼 수 있도록 대륙 레이블을 대륙 상자의 왼쪽 위 모서리로 옮길 수 있습니까?

require(treemap) 
data(GNI2010) 

treemap(GNI2010, 
    index=c("continent", "iso3"), 
    vSize="population", 
    vColor="GNI", 
    type="value") 

답변

0

불행히도 아직 가능하지 않습니다. 이 기능은 다음 업데이트를 위해 나열되지만 우선 순위는 낮습니다.

그리드 패키지로 나중에 플롯을 수동으로 조정하여이를 수행하는 데 어려움이있을 수 있습니다. grid.ls()로 대륙 레이블을 찾아 이동시킬 수 있습니다.

1

이제는 최근 버전의 treemap에서 align.labels 옵션을 사용하여 가능합니다. 도움이 될 수있는 몇 가지 다른 새로운 옵션이 있습니다. 레이블의 정렬을 지정

개체 : 그것이 말하는 align.list에 대한 문서에서

. 수평 정렬 ("left", "center"또는 "right") 및 수직 정렬 ("top", "center"또는 "bottom")을 지정하는 두 값의 문자 벡터 또는 이러한 문자의 목록 벡터, 각 집계 수준에 대해 하나.

각 문자 벡터의 순서는 중요합니다. 즉, x 축 위치에 해당하는 값이 먼저오고 그 다음 값이 y 축에 위치합니다. 예 : c ("right", "bottom")는 유효하지만 c ("bottom", "right")는 유효하지 않습니다.

레이블이 겹치지 않도록 원래의 예가 수정되었습니다. non-overlapping labels

다음 플롯을 산출

data(GNI2014) 
treemap(GNI2014, 
     index=c("continent", "iso3"), 
     vSize="population", 
     vColor="GNI", 
     type="value", 
     align.labels = list(c("left", "top"), c("right", "bottom")) 
)