Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用lme4和GGR中的ggplot2修改随机效果图上的轴比例_R_Ggplot2_Lme4_Mixed Models_Random Effects - Fatal编程技术网

使用lme4和GGR中的ggplot2修改随机效果图上的轴比例

使用lme4和GGR中的ggplot2修改随机效果图上的轴比例,r,ggplot2,lme4,mixed-models,random-effects,R,Ggplot2,Lme4,Mixed Models,Random Effects,我想知道是否有人能帮我做点什么。我有一个装有lme4的混合效应模型,我提取了随机效应,以点图的形式绘制。我已经按照下面粘贴的非常有用的代码进行了操作,并显示了图。不过,我希望能够整理一下x轴的比例,使它看起来更整洁。理想情况下,我希望轴刻度标签位于-0.1、0.1和0.3。我尝试过在不同的地方用scale_x_continuous修改函数,但我不完全确定整个代码是如何协同工作的,所以我不太清楚这会发生什么,或者这是否会起作用。我将非常感谢您的帮助,谢谢 ## re = object of cla

我想知道是否有人能帮我做点什么。我有一个装有lme4的混合效应模型,我提取了随机效应,以点图的形式绘制。我已经按照下面粘贴的非常有用的代码进行了操作,并显示了图。不过,我希望能够整理一下x轴的比例,使它看起来更整洁。理想情况下,我希望轴刻度标签位于-0.1、0.1和0.3。我尝试过在不同的地方用scale_x_continuous修改函数,但我不完全确定整个代码是如何协同工作的,所以我不太清楚这会发生什么,或者这是否会起作用。我将非常感谢您的帮助,谢谢

## re = object of class ranef.mer
ggCaterpillar <- function(re, QQ=TRUE, likeDotplot=TRUE) {
require(ggplot2)
f <- function(x) {
pv   <- attr(x, "postVar")
cols <- 1:(dim(pv)[1])
se   <- unlist(lapply(cols, function(i) sqrt(pv[i, i, ])))
ord  <- unlist(lapply(x, order)) + rep((0:(ncol(x) - 1)) * nrow(x), each=nrow(x))
pDf  <- data.frame(y=unlist(x)[ord],
                   ci=1.96*se[ord],
                   nQQ=rep(qnorm(ppoints(nrow(x))), ncol(x)),
                   ID=factor(rep(rownames(x), ncol(x))[ord], levels=rownames(x)[ord]),
                   ind=gl(ncol(x), nrow(x), labels=names(x)))

if(QQ) {  ## normal QQ-plot
  p <- ggplot(pDf, aes(nQQ, y)) + scale_x_continous(limits=c(-0.6,0.7), breaks=seq(-0.6,0.7, by=0.1), labels=c("-0.6","-0.5","-0.4","0.3","0.2","0.1","0.0", "0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7"))
  p <- p + facet_wrap(~ ind, scales="free")
  p <- p + xlab("Standard normal quantiles") + ylab("Random effect quantiles")
} else {  ## caterpillar dotplot
  p <- ggplot(pDf, aes(ID, y)) + coord_flip()
  if(likeDotplot) {  ## imitate dotplot() -> same scales for random effects
    p <- p + facet_wrap(~ ind)
  } else {           ## different scales for random effects
    p <- p + facet_grid(ind ~ ., scales="free_y")
  }
  p <- p + xlab("Levels") + ylab("Random effects")
}

p <- p + theme(legend.position="none")
p <- p + geom_hline(yintercept=0)
p <- p + geom_errorbar(aes(ymin=y-ci, ymax=y+ci), width=0, colour="black")
p <- p + geom_point(aes(size=1.2), colour="blue") 
return(p)
#plotting the dotplot of my model
ggCaterpillar(ranef(model, condVar=TRUE), QQ=FALSE)
##re=类ranef.mer的对象

ggCaterpillar
p+scale_x_continuous(breaks=seq(-0.3,0.3,0.1))
。谢谢,我尝试了此操作,但收到以下错误消息:错误:离散值提供给continuous scale。你知道为什么会这样吗?我刚刚试过p+scale_y__continuous(breaks=seq(-0.3,0.3,0.1)),结果成功了!我认为这可能与正在翻转的绘图坐标有关@EIPI10抱歉,我没有注意到您代码中的
坐标翻转。绘图中的水平轴实际上是“y轴”,因此
scale\u y\u continuous
是调整轴打断的适当命令。是的,也算出了,谢谢!我如何接受您的回答@eipi10?