Eu estava tentando traçar um histograma desta forma:
# 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
E o resultado foi:
Mas, como você pode ver, o eixo y e o histograma têm um espaço entre eles. Como posso mover o histograma para que fique posicionado corretamente?
Para alinhar o histograma com o eixo y, você pode adicionar a seguinte linha de código ao seu gráfico: "limite = 0"
Tanto o Limite quanto o Centro são especificadores de posição do compartimento. Para obter mais detalhes, colei a descrição do guia de referência do ggplot2 . "Apenas um, centro ou limite, pode ser especificado para um único gráfico. Centro especifica o centro de um dos bins. O limite especifica o limite entre dois bins. Observe que se um deles estiver acima ou abaixo do intervalo dos dados, as coisas irão ser deslocado pelo múltiplo inteiro apropriado de largura. Por exemplo, para centralizar em números inteiros, use largura = 1 e centro = 0, mesmo se 0 estiver fora do intervalo dos dados. Como alternativa, este mesmo alinhamento pode ser especificado com largura = 1 e limite = 0,5, mesmo se 0,5 estiver fora do intervalo dos dados. "
Nesse caso, ao especificar limite = 0, você pode forçar a posição do compartimento a se alinhar com a origem do gráfico (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
Agora seu gráfico deve ser semelhante a este:
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras