gpt4 book ai didi

r - 使用位置 ="dodge"时,ggplot 未正确分组条形图

转载 作者:行者123 更新时间:2023-12-04 03:25:29 25 4
gpt4 key购买 nike

疯了。我有一个融化的数据框,我试图在 ggplot2 的简单分组条形图中显示:

modality <- c("CLASS", "CLASS", "ONLINE", "ONLINE", "HYBRID", "HYBRID")
survey <- c("A Pre", "A Post", "B Pre", "B Post", "C Pre", "C Post")
score <- c(3.45, 4.15, 4.12, 4.34, 4.06, 4.57)
df = data.frame(modality, survey, score)

ggplot(df, aes(fill=modality, y=score, x=survey)) +
geom_bar(position="dodge", stat="identity")

我希望条形图按模态 分组,但结果是这样的: Barplot with grouping error

我试图将其设置得尽可能接近 the example from r-graph-gallery ,效果很好。

specie <- c(rep("sorgho" , 3) , rep("poacee" , 3) , rep("banana" , 3) , rep("triticum" , 3) )
condition <- rep(c("normal" , "stress" , "Nitrogen") , 4)
value <- abs(rnorm(12 , 0 , 15))
data <- data.frame(specie,condition,value)

ggplot(data, aes(fill=condition, y=value, x=specie)) +
geom_bar(position="dodge", stat="identity")

结果: Barplot with groups rendered correctly

我没有看到这两个数据帧的结构有什么不同,但我假设存在一个。我真的很想知道我在这里错过了什么。谢谢!

最佳答案

每个值在 pre、post 中都是不同的,即 'A pre'、'B pre' 等,类似地,'A post'、'B post' 等。如果我们通过删除前缀部分使其成为一个公共(public)组离开 'pre/post' 然后它会给出与示例所示类似的输出

library(dplyr)
library(stringr)
library(ggplot2)
df %>%
mutate(survey = str_remove(survey, '\\D+\\s+')) %>%
ggplot(aes(fill = modality, y = score, x = survey)) +
geom_bar(position = "dodge", stat = "identity")

-输出

enter image description here

关于r - 使用位置 ="dodge"时,ggplot 未正确分组条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67695500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com