我有一个像这样的数据框
data = as.data.frame(data.table::rbindlist(PLOTS))
head(data)
Y X dep_C1
3.96655960 0 184
-8.71308460 0 184
-11.11638947 0 184
-6.84213562 11 184
-1.25926609 11 184
-4.60649529 11 184
0.27577858 11 184
11.85394249 20 184
-0.27114563 20 184
1.73081284 20 184
1.78209915 20 184
11.34305840 20 184
13.49688263 20 184
-7.54752045 20 184
-13.63673286 25 184
-5.75711517 25 184
0.35823669 25 184
-2.45237694 25 184
0.49313087 0 66
-9.04148674 0 66
-15.50337906 0 66
-17.51445351 0 66
-10.66807098 0 66
-2.24337845 5 66
-13.79929533 5 66
1.33287125 5 66
2.22143402 5 66
11.46484833 10 66
23.26805916 10 66
9.07377968 10 66
4.28664665 10 66
我正在尝试为两个dep_C1
值创建两个箱形图并叠加它们。我试过这个
ggplot(data, aes(x=factor(X), y=Y, colour = factor(dep_C1)))
+ geom_boxplot(outlier.size=0,fill = "white")
+ stat_summary(fun.y=median, geom="line", aes(group=1,colour = factor(dep_C1)),size=2)
这些是我的问题
1)两个箱形图是并排而不是重叠
2)在中位数之间画一条线的命令不正常:行应该连接同一组的箱图的中间位置(只有一个箱图是好的)
3)x轴上的值混乱(系列在96后再次开始)
有人可以帮我解决这些问题吗?提前致谢
答案 0 :(得分:2)
您的前两个问题很容易解决。要覆盖箱图,您需要指定position="identity"
,可能还需要alpha=0.5
。对于该行,该组应为group=factor(dep_C1)
。这将看起来如下:
ggplot(data, aes(x=factor(X), y=Y, colour = factor(dep_C1))) +
geom_boxplot(outlier.size=0, fill = "white", position="identity", alpha=.5) +
stat_summary(fun.y=median, geom="line", aes(group=factor(dep_C1)), size=2)
对于第3个问题,您使用的是factor(X)
,它定义了轴的比例。您可以使用scale_x_discrete
更改此比例。也许您正在寻找以下内容:
scale_x_discrete(limits=seq(min(data$X), max(data$X)))
答案 1 :(得分:0)
如果将X转换为连续缩放而不是因子,则可以最好地解决第三个问题;但是,为了制作一个盒子图,你需要group = interaction(time, group)
是aes
:
ggplot(data_frame_test, aes(x=time, y=Value, colour = factor(group), group = interaction(time, group))) +
geom_boxplot(outlier.size=0, fill = "white", position="identity", alpha=.5) +
stat_summary(fun.y=median, geom="line", aes(group=factor(group)), size=2)