Edg*_*cón 4 axis r histogram ggplot2
我试图以这种方式绘制直方图:
# Todo lo haremos con base en un variable aleatoria Uniforme(0,1).
set.seed(26) ; n = 10000
U<-runif(n = n)
# Supongamos que queremos simular de una exponencial.
# Función de distribución: F(X) = 1-exp(-lambda*X) = U
# Entonces, X = F^(-1)(X)= log(1-U)/(-lambda)
lambda = 1/6 # El parámetro de la exponencial que vamos a usar.
X <- log(1-U)/(-lambda)
library(ggplot2)
p <- qplot(X,
geom="histogram",
binwidth = 2,
main = "Histograma de X",
xlab = "Observaciones",
# La función "I" hace que no aparezca una descripción.
fill=I("yellow"),
col=I("blue"),
alpha=I(0.2),
xlim=c(0,50))+
geom_hline(yintercept = 0,col="red",lwd=1)+
geom_vline(xintercept = 0,col="red",lwd=1)
p
Run Code Online (Sandbox Code Playgroud)
结果是:
但是正如您所看到的,y 轴和直方图之间有一个空格。如何移动直方图以使其正确定位?
要使直方图与 y 轴对齐,您可以在绘图中添加以下代码行:“boundary = 0”
Boundary 和 Center 都是 bin 位置说明符。有关更多详细信息,我已粘贴ggplot2 参考指南中的描述。“对于单个图只能指定一个,中心或边界。中心指定一个箱的中心。边界指定两个箱之间的边界。请注意,如果高于或低于数据范围,事情将移动适当的宽度整数倍。例如,以整数为中心使用宽度 = 1 和中心 = 0,即使 0 超出数据范围。或者,可以使用宽度 = 1 和指定相同的对齐方式边界 = 0.5,即使 0.5 超出数据范围。”
在这种情况下,通过指定边界 = 0,您可以强制箱位置与图形的原点 (0,0) 对齐。
# Todo lo haremos con base en un variable aleatoria Uniforme(0,1).
set.seed(26) ; n = 10000
U<-runif(n = n)
# Supongamos que queremos simular de una exponencial.
# Función de distribución: F(X) = 1-exp(-lambda*X) = U
# Entonces, X = F^(-1)(X)= log(1-U)/(-lambda)
lambda = 1/6 # El parámetro de la exponencial que vamos a usar.
X <- log(1-U)/(-lambda)
library(ggplot2)
p <- qplot(X,
geom="histogram",
binwidth = 2,
boundary = 0, #This controls the bin alignment with the y-axis
main = "Histograma de X",
xlab = "Observaciones",
# La función "I" hace que no aparezca una descripción.
fill=I("yellow"),
col=I("blue"),
alpha=I(0.2),
xlim=c(0,50))+
geom_hline(yintercept = 0,col="red",lwd=1)+
geom_vline(xintercept = 0,col="red",lwd=1)
# geom_histogram(binwidth = 1, boundary = 0, closed = "left")
p
Run Code Online (Sandbox Code Playgroud)
现在你的情节应该是这样的: