gpt4 book ai didi

r - 使用 facet_grid 和多个数据点时结合 geom_point 和 geom_line (R ggplot2)

转载 作者:行者123 更新时间:2023-12-01 12:19:39 27 4
gpt4 key购买 nike

我有一个类似于以下的数据集,我想使用 facet_grid 函数绘制它:

IV1<-c('DO', 'PO', 'DO', 'PO', 'DO', 'PO', 'DO', 'PO', 'DO', 'PO', 'DO', 'PO',
'DO', 'PO', 'DO', 'PO', 'DO', 'PO', 'DO', 'PO', 'DO', 'PO', 'DO', 'PO',
'DO', 'PO', 'DO', 'PO', 'DO', 'PO', 'DO', 'PO', 'DO', 'PO', 'DO', 'PO',
'DO', 'PO', 'DO', 'PO', 'DO', 'PO', 'DO', 'PO', 'DO', 'PO', 'DO', 'PO')
IV2<-c('DF', 'DF', 'SN', 'SN', 'SV', 'SV', 'DF', 'DF', 'SN', 'SN', 'SV', 'SV',
'DF', 'DF', 'SN', 'SN', 'SV', 'SV', 'DF', 'DF', 'SN', 'SN', 'SV', 'SV',
'DF', 'DF', 'SN', 'SN', 'SV', 'SV', 'DF', 'DF', 'SN', 'SN', 'SV', 'SV',
'DF', 'DF', 'SN', 'SN', 'SV', 'SV', 'DF', 'DF', 'SN', 'SN', 'SV', 'SV')
IV3<-c('Adult', 'Adult', 'Adult', 'Adult', 'Adult', 'Adult', 'Child', 'Child', 'Child', 'Child', 'Child', 'Child',
'Adult', 'Adult', 'Adult', 'Adult', 'Adult', 'Adult', 'Child', 'Child', 'Child', 'Child', 'Child', 'Child',
'Adult', 'Adult', 'Adult', 'Adult', 'Adult', 'Adult', 'Child', 'Child', 'Child', 'Child', 'Child', 'Child',
'Adult', 'Adult', 'Adult', 'Adult', 'Adult', 'Adult', 'Child', 'Child', 'Child', 'Child', 'Child', 'Child')
Subj<-as.character(c(1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4,
5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8))
Value<-runif(48)
data<-data.frame(Subj, IV1, IV2, IV3, Value)

我可以像这样成功地绘制平均数据:

library(ggplot2)
agg<-aggregate(Value~IV1*IV2*IV3, data=data, FUN="mean")

(P1<-ggplot(agg, aes(x=IV1, y=Value)) + theme_bw() + facet_grid(IV3~IV2) +
geom_point(aes(size=1.5, colour=factor(IV2), shape=factor(IV1))))

看起来像这样: enter image description here

我也可以像这样成功绘制单个主题数据:

(P2<-ggplot(data, aes(x=IV1, y=Value, group=Subj)) + theme_bw() + 
facet_grid(IV3~IV2)+
geom_point(aes(group=Subj, colour=factor(IV2), shape=factor(IV1))))

看起来像这样: enter image description here

但是,理想情况下,我希望 (a) 聚合平均值和 Subj 数据都在同一个图上(平均数据点更大)和 (b) 每个方面内的数据点被连接在 DO 和 PO 点之间(对于聚合平均值和单个 Subj 数据点)。

有点像这里的模型(油漆制作): enter image description here

提前致谢!

最佳答案

agg$Subj <- rep(1:2, each = nrow(agg) / 2)
ggplot(data, aes(x=IV1, y=Value, colour=factor(IV2), shape=factor(IV1), group = Subj)) +
facet_grid(IV3~IV2)+
geom_point() +
geom_point(data = agg, size = 5) +
geom_line() +
geom_line(data = agg, linetype = "dashed") +
theme_bw()

enter image description here

我正在使用另一个 linetype 来直观地区分实际观察值和聚合值(只是一个需要考虑的想法)。

关于r - 使用 facet_grid 和多个数据点时结合 geom_point 和 geom_line (R ggplot2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45465804/

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