R에 익숙하지 않아 ggplot2 및 coord_flip()
을 사용하여 매우 간단한 수평 막대 그림을 생성했습니다. ,ggplot2 막대 그림 : 막대 및 레이블 크기에 따라 달라집니다.
geom_text(aes(x=TYPE, y=COUNT, ymax=COUNT, label=COUNT,
hjust=ifelse(COUNT>1000, 1.5, -0.3)),
size=3.5, position = position_dodge(width=0.8))
문제가 있다는 것입니다 : 다음 명령을 사용하여 는 특히, 나는 기본적으로 막대 왼쪽에있는 변수 x의 값을 삽입 (또는 오른쪽에있는 레이블이 맞지 않을 경우) 데이터 세트에 따라 x 값이 크게 달라질 수 있습니다 (예 : dataset_1 x 값은 1에서 200 사이, dataset_2 x 값은 10,000에서 100,000 사이가 될 수 있음 ...). 그러면 가장 짧은 막대의 레이블이 내가 사용하고있는 ifelse
문과 잘못 배치되었습니다 (아래 그림 A의 갈색 막대 참조). 이 경우 모든 데이터 세트에 일정한 COUNT>1000
조건을 사용할 수 없습니다.
그림 A :
내가 수동으로 각 데이터 세트에 대한 hjust=ifelse(COUNT>1000,...
문장의 값을 수정할 수 있습니다. 그러나 아래 그림 B와 같이 각 데이터 집합에 대해 ifelse
조건의 값을 수정하지 않고 축과 막대 사이에 맞지 않으면 자동으로 막대의 레이블을 이동시킬 수 있는지 궁금합니다.
그림 B :
편집해결 방법 (완전하지만 좋은 것은 아닙니다) : 값이 최대 5 % 미만이면 바의 오른쪽에 레이블을 배치 값
MAXI <- max(data[,2])
geom_text(aes(x=TYPE, y=COUNT, ymax=COUNT, label=COUNT,
hjust=ifelse((COUNT/MAXI)<0.05, -0.3, 1.3)))
아니, 아니다. – Gregor