varias superponer studio para interpretacion graficos graficas ejemplos diagrama datos cajas caja bigotes agrupados r plot

studio - superponer graficas en r



Cómo graficar datos agrupados por un factor, pero no como un diagrama de caja (6)

Puedes hacerlo con ggplot2 , usando facets . Cuando leí "Quiero crear una trama donde los puntos de datos están agrupados según lo definido por el factor" , lo primero que me vino a la mente fueron las facets .

Pero en este caso particular, una alternativa más rápida debería ser:

plot(as.numeric(trans.factor), casp6)

Y luego puedes jugar con las opciones de trazado ( type , fg , bg ...), pero te recomiendo que te ggplot2 con ggplot2 , ya que tiene un código mucho más limpio, una gran funcionalidad, puedes evitar sobrerrollar ... etc., etc.

Aprenda cómo lidiar con los factores. Obtuviste un diagrama de barras cuando evaluabas la plot(trans.factor, casp6) porque trans.factor era una clase de factor (irónicamente, incluso la trans.factor en esa trans.factor ) ... y el trans.factor , como tal, fue declarado antes de un continuo ( numeric) variable dentro de la función plot() ... por lo tanto plot() "siente" la necesidad de subconjuntos de datos y dibujar boxplot en función de cada parte (si declara la variable continua primero, obtendrá un gráfico ordinario, ¿no?). ggplot2 , por otro lado, interpreta el factor de una manera diferente ... como una variable numérica "normal" (esto significa sintaxis proporcionada por Jonathan Chang , debe especificar geom cuando hace algo más complejo en ggplot2 ).

Pero, supongamos que tiene una variable y un factor continuos, y desea aplicar un histograma en cada parte de la variable continua, definida por niveles de factor. Aquí es donde las cosas se vuelven complicadas con las capacidades del gráfico base.

# create dummy data > set.seed(23) > x <- rnorm(200, 23, 2.3) > g <- factor(round(runif(200, 1, 4)))

Al usar gráficos base ( package:graphics ):

par(mfrow = c(1, 4)) tapply(x, g, hist)

ggplot2 manera:

qplot(x, facets = . ~ g)

Intente hacer esto con graphics en una línea de código (¡el punto y coma y las funciones personalizadas se consideran trampas!):

qplot(x, log(x), facets = . ~ g)

¡Ojalá no te haya aburrido hasta la muerte, pero te haya ayudado!

Saludos cordiales,
aL3xa

En R, dado un vector

casp6 <- c(0.9478638, 0.7477657, 0.9742675, 0.9008372, 0.4873001, 0.5097587, 0.6476510, 0.4552577, 0.5578296, 0.5728478, 0.1927945, 0.2624068, 0.2732615)

y un factor:

trans.factor <- factor (rep (c("t0", "t12", "t24", "t72"), c(4,3,3,3)))

Quiero crear una gráfica donde los puntos de datos estén agrupados según lo definido por el factor. Entonces las categorías deben estar en el eje x, los valores en la misma categoría deben tener la misma coordenada x.

Simplemente haciendo plot(trans.factor, casp6) hace casi lo que quiero, produce un diagrama de caja, pero quiero ver los puntos de datos individuales.


require(ggplot2) qplot(trans.factor, casp6)


Puede lograr acercarse a lo que desea utilizando gráficos de celosía haciendo:

library(lattice) xyplot(casp6 ~ trans.factor, scales = list(x = list(at = 1:4, labels = levels(trans.factor))))


Creo que hay una solución mejor (la escribí para un taller hace unos días), pero se me olvidó. Aquí hay un feo sustituto con gráficos básicos. Siéntase libre de anotar el eje x ad libitum . Personalmente, me gusta la solución de Greg.

plot(0, 0, xlim = c(1, 4), ylim = range(casp6), type = "n") points(casp6 ~ trans.factor)



No se necesita paquete adicional

Llego un poco tarde a la fiesta, pero descubrí que puedes obtener el resultado deseado muy fácilmente con la función de diagrama estándar: simplemente convierte el factor en un valor numérico:

plot(as.numeric(trans.factor), casp6)