superponer studio los iris graficas graficar ggplot geom_point funcion escala ejes como cambiar r ggplot2

studio - Cómo usar geom_dotplot() de ggplot2 con relleno y grupo



graficar en r ggplot (2)

Creo que tienes que agregar el argumento position = "dodge" :

ggplot(tmpData, aes(x = x, y = y, fill = fill,)) + geom_dotplot(binaxis = "y", stackdir = "center", dotsize = 4, position = "dodge")

Realmente me gusta la forma en que ggplot2::geom_dotplot() puede apilar puntos en el medio de una categoría, pero parece que no puedo combinar eso con un color de relleno.

Veamos un ejemplo:

# test data tmpData <- data.frame(x=c(rep(''x'', 3),rep(''y'', 3)), y=c(1,1,2,1,2,2), fill=rep(c(''A'', ''B'', ''B''), 2)) # Plot without fill color ggplot(tmpData, aes(x=x, y=y)) + geom_dotplot(binaxis = "y", stackdir = "center", dotsize=4)

Resultando en esta trama:

Pero cuando agrego el argumento de relleno:

ggplot(tmpData, aes(x=x, y=y, fill=fill)) + geom_dotplot(binaxis = "y", stackdir = "center", dotsize=4)

El relleno parece sobrescribir la agrupación realizada en "x", lo que provoca que los dos puntos (x, 1) (x, 1) se contraigan. Me gustaría que tuvieran diferentes colores.

Cuando intento especificar el grupo, el color de relleno se ignora:

ggplot(tmpData, aes(x=x, y=y, group=x, fill=fill)) + geom_dotplot(binaxis = "y", stackdir = "center", dotsize=4)

El colapso parece ser evitable habilitando grupos de pila:

ggplot(tmpData, aes(x=x, y=y, fill=fill)) + geom_dotplot(binaxis = "y", stackgroups=TRUE, stackdir = "center", dotsize=4)

Pero luego pierdo el centrado de los datos en la "x" y "y" que se encuentran en las otras 3 parcelas.

¿Hay una manera de usar geom_dotplot() con ambos grupos y rellenar?


Si está abierto a un poco de una solución pirata para obtener el aspecto que desea ... Puede sobrescribir el comando de relleno simplemente proporcionándole un vector de nombres de colores:

tmpData$colorname <- rep(c(''red'',''blue'',''blue''),2) ggplot(tmpData, aes(x=x, y=y)) + geom_dotplot(binaxis = "y", stackdir = "center", dotsize=4, fill=tmpData$colorname)