gpt4 book ai didi

r - ggplot2 grouped boxplot 不会为不同的时间点分开组

转载 作者:行者123 更新时间:2023-12-04 10:27:11 55 4
gpt4 key购买 nike

我有一个包含两组的简单数据集,每组在 4 个不同时间点的值。我想随着时间的推移将此数据集显示为分组箱线图,但 ggplot2 不会分隔时间点。

这是我的数据:

 matrix
Replicate Line Day Treatment X A WT Marker Proportion
1 C 10 low NA HuCHuD_Pos 8.62
2 C 10 low NA HuCHuD_Pos NA
1 C 18 low NA HuCHuD_Pos 30.50
3 C 18 low NA HuCHuD_Pos NA
2 C 18 low NA HuCHuD_Pos NA
1 C 50 low NA HuCHuD_Pos 26.10
2 C 50 low NA HuCHuD_Pos 31.90
1 C 80 low NA HuCHuD_Pos 12.70
2 C 80 low NA HuCHuD_Pos 26.20
1 C 10 normal NA HuCHuD_Pos NA
2 C 10 normal NA HuCHuD_Pos 17.20
1 C 18 normal NA HuCHuD_Pos 3.96
2 C 18 normal NA HuCHuD_Pos NA
1 C 50 normal NA HuCHuD_Pos 25.60
2 C 50 normal NA HuCHuD_Pos 17.50
1 C 80 normal NA HuCHuD_Pos 19.00
NA C 80 normal NA HuCHuD_Pos NA

这是我的代码:

matrix = as.data.frame(subset(data.long, Line == line_single & Marker == marker_single & Day != "30"))

pdf(paste(line_name_single, marker_name_single, ".pdf"), width=10, height=10)
plot <-
ggplot(data=matrix,aes(x=Day, y=Proportion, group=Treatment, fill=Treatment)) +
geom_boxplot(position=position_dodge(1))
print(plot)
dev.off()

我做错了什么?

我想要什么

我得到了什么

非常感谢您的帮助!

干杯,宝拉

最佳答案

编辑:

这就是 minimal reproducible example 的方式你的问题可能看起来像:

matrix <- structure(list(Day = c(10L, 10L, 18L, 18L, 18L, 50L, 50L, 80L, 80L, 10L, 10L, 18L, 18L, 50L, 50L, 80L, 80L),
Treatment = c("low", "low", "low", "low", "low", "low", "low", "low", "low", "normal", "normal", "normal", "normal", "normal", "normal", "normal", "normal"),
Proportion = c(8.62, NA, 30.5, NA, NA, 26.1, 31.9, 12.7, 26.2, NA, 17.2, 3.96, NA, 25.6, 17.5, 19, NA)),
class = "data.frame", row.names = c(NA, -17L))

使用 factor 来“离散化”变量 Day 的建议答案:

ggplot(data=matrix,aes(x=factor(Day), y=Proportion,  fill=Treatment)) +
geom_boxplot(position=position_dodge(1)) +
labs(x ="Day")

enter image description here

说明:如果我们将连续变量传递给箱线图的“x”轴,ggplot2 不会将该轴转换为离散变量。因此,由于缺少“分组”变量,我们只能得到一个框。但是,如果我们将变量转换为一些离散的东西,比如一个因子、一个字符串或一个日期,我们就会得到想要的行为。

此外,当您使用 dput 或描述的技术之一时 here与必须尝试使用​​问题中的数据描述(或者至少我不知道如何加载该示例数据)相比,查找和测试答案要容易得多

附言我认为将 data.frame 类的变量命名为“matrix”有点令人困惑,因为 matrix 在 R 中是它自己的数据类型...;)

关于r - ggplot2 grouped boxplot 不会为不同的时间点分开组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60586810/

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