variable una sencillos resueltos probabilidad funcion ejercicios ejemplos distribucion discreta densidad continua aleatoria acumulada r ggplot2

una - ¿Cómo creo un mapa de calor de densidad continua de datos de dispersión 2D en R?



funcion de probabilidad de una variable aleatoria discreta (3)

Combinando otras dos respuestas (una que apunta a geom_density2d y otra que muestra datos de muestra y scale_colour_gradient ):

df <- data.frame(x=rnorm(10000),y=rnorm(10000)) ggplot(df,aes(x=x,y=y))+ stat_density2d(aes(fill=..level..), geom="polygon") + scale_fill_gradient(low="blue", high="green")

Puedo generar un diagrama de densidad de datos 1D con:

qplot(mydatapoints, geom=''density'')

También he visto muchos ejemplos de grillas de mapas de calor, pero estos son más parecidos a los histogramas para los datos 1D, ya que los datos entran en cubos discretos en lugar de mostrar una curva suave.

¿Puedo trazar algo similar a la densidad 1D pero para datos 2D, con (por ejemplo) algo como tono / saturación / claridad para representar la densidad?


Creo que quiere una estimación de densidad 2D, que es implementada por kde2d en el paquete MASS .

df <- data.frame(x=rnorm(10000),y=rnorm(10000))

a través de MASS y base R:

k <- with(df,MASS:::kde2d(x,y)) filled.contour(k)

a través de ggplot ( geom_density2d() llama a kde2d() )

library(ggplot2) ggplot(df,aes(x=x,y=y))+geom_density2d()

Encuentro que filled.contour más atractivo, pero es un gran trabajo trabajar con él si quiere modificar algo porque usa el layout y se encarga del diseño de la página. Basándose en la respuesta de Brian Diggs, que rellena los colores entre los contornos: aquí está el equivalente con diferentes niveles alfa, con puntos transparentes agregados para la comparación.

ggplot(df,aes(x=x,y=y))+ stat_density2d(aes(alpha=..level..), geom="polygon") + scale_alpha_continuous(limits=c(0,0.2),breaks=seq(0,0.2,by=0.025))+ geom_point(colour="red",alpha=0.02)+ theme_bw()


También hay scale_colour_gradient()

df <- data.frame(x=rnorm(10000),y=rnorm(10000)) ggplot(df, aes(x,y,colour=y)) + geom_point() + scale_colour_gradient(low="blue",high="red")