막대 그림에서 사용하지 않은 수준 (즉, 개수가 0 인 수준)을 플로팅하고 싶지만 사용하지 않는 수준이 삭제되어 유지 방법을 알 수 없습니다.
df <- data.frame(type=c("A", "A", "A", "B", "B"), group=rep("group1", 5))
df$type <- factor(df$type, levels=c("A","B", "C"))
ggplot(df, aes(x=group, fill=type)) + geom_bar()
위의 예에서 C가 0으로 표시되는 것을보고 싶지만 완전히 없습니다.
도움을 주셔서 감사합니다 Ulrik
편집하다:
이것은 내가 원하는 것을한다
df <- data.frame(type=c("A", "A", "A", "B", "B"), group=rep("group1", 5))
df1 <- data.frame(type=c("A", "A", "A", "B", "B", "A", "A", "C", "B", "B"), group=c(rep("group1", 5),rep("group2", 5)))
df$type <- factor(df$type, levels=c("A","B", "C"))
df1$type <- factor(df1$type, levels=c("A","B", "C"))
df <- data.frame(table(df))
df1 <- data.frame(table(df1))
ggplot(df, aes(x=group, y=Freq, fill=type)) + geom_bar(position="dodge")
ggplot(df1, aes(x=group, y=Freq, fill=type)) + geom_bar(position="dodge")
해결책은 table ()을 사용하여 주파수를 계산 한 다음 플롯하는 것입니다.