R - ggplot() - 如何在图轴上对级别进行分组以表示对比度假设

  • 本文关键字:假设 对比度 表示 ggplot r ggplot2
  • 更新时间 :
  • 英文 :


这个问题是关于R的:

我有一个这样的对比假设:

pos_c1 = c(1/2,1/2,-1/6,-1/6,-1/6,-1/6,-1/6,-1/6)
posmat.temp = rbind(pos_c1)
posmat = pseudoinverse(posmat.temp)
colnames(posmat) <- ".pos_c1"
posmat
contrasts(datasheet.complete$LastPosition) = posmat

计算完我的模型后,我想通过 ggplot(( 函数绘制它,将我的对比度假设放在 x 轴上。所以我想要 x asis 中的 2 个级别,而不是 8 个级别:

c(1/2, 1/2)c(-1/6, -1/6, -1/6, -1/6, -1/6, -1/6)

我不明白如何实现这种绘图,我只能绘制所有 8 个级别,而不是以表示我感兴趣的对比假设的方式分组。 有没有人知道如何实现这一目标?


在以下示例中,x 轴显示 8 个不同的级别。我想做的是将第 1 级和第 2 级(以及相对值(分组在一侧,将级别 3、4、5、6、7、8 分组在另一侧:

library(lme4)
library(lmerTest)
library(corpcor)
database <- data.frame(
Clos=factor(c(4,4,1,4,4,3,2,1,2,1,2,2,4,3,1,2,1,4,1,3,2,2,4,4,4,4,2,1,4,2,2,1,4,2,4,2,1,4,4,3)),
Pos=factor(c(2,4,1,2,5,6,7,2,2,2,5,6,3,3,3,8,5,3,4,2,1,4,3,3,2,6,1,8,3,7,5,7,8,3,6,6,1,6,3,7)),
RF=c(8,6,2,9,7,1,7,6,3,4,6,4,5,2,5,5,3,4,1,3,1,2,3,1,2,2,3,1,8,5,2,2,7,1,9,4,5,6,4,2),
Score=c(4,3,3,5,4,3,2,4,5,2,2,3,3,4,4,4,3,2,3,3,5,4,3,4,4,2,3,4,3,4,1,2,2,2,3,4,5,3,1,2)
)
clos_c1 = c(0,0,-1,1)
clos_c2 = c(0,-1,0,1)
clos_c3 = c(-1,0,0,1)
closmat.temp = rbind(constant = 1/4,clos_c1,clos_c2,clos_c3)
closmat = solve(closmat.temp)
closmat = closmat[, -1]
closmat
pos_c1 = c(1/2,1/2,-1/6,-1/6,-1/6,-1/6,-1/6,-1/6)
posmat.temp = rbind(pos_c1)
posmat <- pseudoinverse(posmat.temp)
colnames(posmat) <- "pos_c1"
contrasts(database$Clos) <- closmat
contrasts(database$Pos) <- posmat
##NEW LINE
colnames(contrasts(database$Pos))<-c("pos1","pos2","pos3","pos4","pos5","pos6","pos7")
model <- lmer(Score~Clos+Pos+(1|RF), data = database, REML = TRUE)
summary(model)

model.plot <- as.data.frame(Effect(c("Pos","Clos"), mod=model, se=TRUE))
# Relable them to put them back in order
model.plot$Pos.F <- factor(model.plot$Pos,  
level=c("1", "2", "3", "4", "5", "6", "7", "8"),    
labels=c("1", "2", "3", "4", "5", "6", "7", "8"))   
model.plot$Group <- factor(model.plot$ExpertiseType,
level=c("1", "2", "3"),   
labels=c("Amateurs", "Performers", "Composers"))
#Create plot
#png(filename="Interaction-Plot-with-LastPos.png")
ggplot(data=model.plot, aes(x=Pos.F, y=fit, group=Clos))+
geom_line(size=2, aes(color=Clos))+
geom_ribbon(aes(ymin=fit-se, ymax=fit+se,fill=Clos),alpha=.2)+
ylab("Cadential level")+
xlab("Last Position")+
ggtitle("")+
theme_bw()+
theme(text = element_text(size=12),
legend.text = element_text(size=12),
legend.direction = "horizontal",
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position="top")
#dev.off()

如果只是为了绘图,为什么不创建一个新变量,其中级别 1 和 2 = 一个级别(假设"I"(和级别 2,3,4,5,6,7,8 = 另一个级别(假设"II"(?

最新更新