kev*_*8ca 5 r bar-chart ggplot2
假设我的数据是两列,一列是“Condition”,一列是“Stars”
food <- data.frame(Condition = c("A", "B", "A", "B", "A"), Stars=c('good','meh','meh','meh','good'))
Run Code Online (Sandbox Code Playgroud)
如何制作按“条件”分组的“星”频率的条形图?
现在我有
q <- ggplot(food, aes(x=Stars))
q + geom_bar(aes(y=..count../sum(..count..)))
Run Code Online (Sandbox Code Playgroud)
如何制作由“条件”分组的四个条形图?
例如。“条件 A”的“好”为 0.66,“Meh”为 0.33
我想这就是你要找的:
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")
Run Code Online (Sandbox Code Playgroud)
起初,我使用dplyr包计算了频率,该包用作 .y 中的 y 参数geom_bar()。然后我使用了根据条件划分条形的fill=Condition参数ggplot()。此外,由于已经计算出频率,我已设置position="dodge"将条形彼此相邻并且stat="identity"。
我有使用价值..prop..、审美group和facet_wrap()。使用美学group比例按组计算。并facet_wrap()用于分别绘制每个条件。
require(ggplot2)
food <- data.frame(Condition = c("A", "B", "A", "B", "A"),
Stars=c('good','meh','meh','meh','good'))
ggplot(food) +
geom_bar(aes(x = Stars, y = ..prop.., group = Condition)) +
facet_wrap(~ Condition)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5362 次 |
| 最近记录: |