如何绘制与平均值的偏差

Pau*_*arr 2 r mean ggplot2

在RI中创建了一个简单的一列矩阵,产生一个带有集合均值和给定标准差的数字列表.

rnorm2 <- function(n,mean,sd) { mean+sd*scale(rnorm(n)) }
r <- rnorm2(100,4,1)
Run Code Online (Sandbox Code Playgroud)

我现在想绘制这些数字与平均值的差异.我可以在Excel中执行此操作,如下所示:

在此输入图像描述

但是我想用ggplot2Excel中的R形图来创建一个图形,我用线图来欺骗,但如果我能用列做这个就更好了.我尝试过使用散点图,但我无法弄清楚如何将其转换为与均值的偏差.

Ben*_*ker 6

也许你想要:

rnorm2 <- function(n,mean,sd) { mean+sd*scale(rnorm(n)) }
set.seed(101)
r <- rnorm2(100,4,1)
x <- seq_along(r)  ## sets up a vector from 1 to length(r)
par(las=1,bty="l") ## cosmetic preferences
plot(x, r, col = "green", pch=16) ## draws the points
## if you don't want points at all, use 
##    plot(x, r, type="n")  
## to set up the axes without drawing anything inside them
segments(x0=x, y0=4, x1=x, y1=r, col="green") ## connects them to the mean line
abline(h=4)
Run Code Online (Sandbox Code Playgroud)

如果你在0附近绘图,你可以自动执行以下操作type="h":

plot(x,r-4,type="h", col="green")
Run Code Online (Sandbox Code Playgroud)

要做到这一点ggplot2:

library("ggplot2")
theme_set(theme_bw()) ## my cosmetic preferences
ggplot(data.frame(x,r))+
    geom_segment(aes(x=x,xend=x,y=mean(r),yend=r),colour="green")+
    geom_hline(yintercept=mean(r))
Run Code Online (Sandbox Code Playgroud)