두 번째 범주 형 변수에 따라 분류 된 범주 형 변수 ggplot2를 바 플롯하고 facet_wrap을 사용하여 서로 다른 플롯에서 구분합니다. 각 비율을 표시합니다. 여기에 재현 가능한 예gplplot과 gplot 두 번째 범주 변수의 facet_wrap 두 번째 변수 표시율에 따라
test <- data.frame(
test1 = sample(letters[1:2], 100, replace = TRUE),
test2 = sample(letters[3:5], 100, replace = TRUE),
test3 = sample(letters[9:11],100, replace = TRUE)
)
ggplot(test, aes(x=factor(test1))) +
geom_bar(aes(fill=factor(test2), y=..prop.., group=factor(test2)), position="dodge") +
facet_wrap(~factor(test3))+
scale_y_continuous("Percentage (%)", limits = c(0, 1), breaks = seq(0, 1, by=0.1), labels = percent)+
scale_x_discrete("")+
theme(plot.title = element_text(hjust = 0.5), panel.grid.major.x = element_blank())
이렇게하면 각 테스트 3에서 test1에 따라 test2의 비율로 막대 그래프가 표시됩니다. 상단에 각 막대의 백분율을 표시하고 싶습니다. 또한, 오른쪽의 범례 이름을 Test2의 factor (test2)에서 변경하고 싶습니다.
감사를 당신의 대답. 그것은 내 필요성에 부합하고 내 문제를 해결합니다. 백분율의 합이 100과 다른 것을 피하는 방법은 무엇입니까? 나는 그것이 함수 라운드의 결과라고 이해하지만, 어떤 해결책이 있다면 나는 생각하고 있었다. 고마워요. – ChinaskyM
@ChinaskyM - 물론, '돌연변이'가있는 초기 계산에서 'round'를 사용하지 않으면보다 정확한 값이 보존됩니다. 플롯 자체에 표시하고자하는 소수점 자리는 얼마나보기 좋을지에 따라 달라질 수 있지만, 초기 계산에서 반올림하지 않으면'geom_text()'호출에서'round'를 사용하여 놀 수 있습니다 . –
큰 충고. 정말 고마워. – ChinaskyM