Traçando funções de densidade pré-determinada utilizando ggplot e R

StackOverflow https://stackoverflow.com/questions/1523298

  •  19-09-2019
  •  | 
  •  

Pergunta

Eu tenho três conjuntos de diferentes comprimentos de dados e gostaria de traçar funções de densidade de todos os três na mesma parcela. Isto é para a frente com bases gráficos:

n <- c(rnorm(10000), rnorm(10000))
a <- c(rnorm(10001), rnorm(10001, 0, 2))
p <- c(rnorm(10002), rnorm(10002, 2, .5))

plot(density(n))
lines(density(a))
lines(density(p))

O que me dá algo como isto:

alt texto http://www.cerebralmastication.com /wp-content/uploads/2009/10/density.png

Mas eu realmente quero fazer isso com ggplot2 porque eu quero adicionar outros recursos que estão disponíveis apenas com ggplot2. Parece que GGPLOT realmente quer levar meus dados empíricos e calcular a densidade para mim. E isso me dá um monte de lábio porque meus conjuntos de dados são de diferentes comprimentos. Então, como posso obter esses três densidades a trama em ggplot2?

Foi útil?

Solução

O segredo para a felicidade na ggplot2 é colocar tudo no "longo" (ou o que eu acho orientada matriz pessoas chamaria de "escassa") formato:

df <- rbind(data.frame(x="n",value=n),
            data.frame(x="a",value=a),
            data.frame(x="p",value=p))
qplot(value, colour=x, data=df, geom="density")

Se você não quiser cores:

qplot(value, group=x, data=df, geom="density")
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top