다음은 "3보다 큰 캐럿"의 수를 막대 세그먼트에 삽입합니다. 문제를 여러 단계로 나누었습니다. 1 단계 : "3보다 큰 캐럿"을 식별하는 새로운 변수. 2 단계 : 각 색상과 컷에 대한 다이아몬드의 요약표를 얻고 각 색상과 컷에 대해 "3보다 큰 캐럿"을 얻습니다 .Plyr 패키지에서 ddply() 함수를 사용했습니다. 3 단계 : 막대 도표에 레이블을 붙이는 방법 4 단계 : 레이블의 y 위치를 나타내는 변수를 요약 테이블에 추가 5 단계 : 그림에 geom_text 계층 추가 geom_text의 데이터 프레임은 요약 테이블입니다. 레이블 (이 경우 "3보다 큰 캐럿"에 대한 계수), y 위치 (이전 단계에서 계산 된) 및 x 위치 (색상).
library(ggplot2)
library(plyr)
# Step 1
diamonds$caratGT3 = ifelse(diamonds$carat > 3, 1, 0)
# Step 2
diamonds2 = ddply(diamonds, .(color, cut), summarize, CountGT3 = sum(caratGT3))
diamonds2$Count = count(diamonds, .(color, cut))[,3]
diamonds2
# Step 3
p = ggplot() + geom_bar(data = diamonds, aes(x=factor(color),fill=factor(cut)))
# Step 4
diamonds2 <- ddply(diamonds2,.(color),
function(x) {
x$cfreq <- cumsum(x$Count)
x$pos <- (c(0,x$cfreq[-nrow(x)]) + x$cfreq)/2
x
})
# Step 5
(p <- p + geom_text(data = diamonds2,
aes(x = factor(color), y = pos, label = CountGT3),
size = 3, colour = "black", face = "bold"))