假设我的数据是两列,一列是“条件”,一列是“星星”
0 / 0
如何将“Star”频率的条形图按“条件”分组?
我读过here但想扩大该答案以包含群组。
现在我有
food <- data.frame(Condition = c("A", "B", "A", "B", "A"), Stars=c('good','meh','meh','meh','good'))
如何使用“条件”分组四个条形图?
EG。 '条件A'的'Good'为0.66,'Meh'为0.33
答案 0 :(得分:3)
我想这就是你要找的东西:
food <- data.frame(Condition = c("A", "B", "A", "B", "A"), Stars=c('good','meh','meh','meh','good'))
library(ggplot2)
library(dplyr)
data <- food %>% group_by(Stars,Condition) %>% summarize(n=n()) %>% mutate(freq=n/sum(n))
ggplot(data, aes(x=Stars, fill = Condition, group = Condition)) + geom_bar(aes(y=freq), stat="identity", position = "dodge")
首先,我使用dplyr
包计算了频率,该包用作geom_bar()
中的y参数。然后我在fill=Condition
中使用ggplot()
参数,根据条件划分条形。此外,由于已经计算过的频率,我已将position="dodge"
设置为彼此相邻并且stat="identity"
。
答案 1 :(得分:2)