ggplot2 permite personalizar la forma de los puntos de tus gráficos, estableciendo la misma forma para todos los puntos o una diferente para cada grupo. En esta guía encontrarás la lista completa de las formas disponibles, por número y por nombre, y cómo utilizarlas. Si usas los gráficos de R base consulta los símbolos pch y si quieres personalizar las líneas consulta los tipos de línea en ggplot2.
Lista de formas
La forma de los puntos se establece con el argumento shape, que acepta un número del 0 al 25. Son los mismos símbolos que los del argumento pch de los gráficos de R base.
Ten en cuenta que las formas del 21 al 25 tienen color de borde y color de relleno, por lo que puedes personalizarlos con los argumentos color y fill, respectivamente. Las formas del 0 al 14 solo tienen borde y las del 15 al 20 están rellenas del mismo color.
shapes <- data.frame(shape = 0:25,
x = rep(1:6, length.out = 26),
y = rep(5:1, each = 6, length.out = 26))
ggplot(shapes, aes(x = x, y = y)) +
geom_point(aes(shape = shape), size = 5, fill = "red") +
geom_text(aes(label = shape), nudge_y = -0.35) +
scale_shape_identity() +
theme_void()


Formas por su nombre
ggplot2 también permite especificar las formas por su nombre, lo que hace el código más fácil de leer. Los nombres combinan la figura ("circle", "square", "diamond", "triangle") con su estilo ("open", "filled", "cross", "plus"), como en shape = "triangle filled".
ggplot(iris, aes(x = Sepal.Length, y = Petal.Length)) +
geom_point(shape = "diamond filled", fill = "red", size = 3)
Si quieres que todos los puntos tengan la misma forma pasa el número o el nombre de la forma al argumento shape de geom_point, fuera de aes. Ten en cuenta que también puedes cambiar el tamaño de los puntos con size.
ggplot(iris, aes(x = Sepal.Length, y = Petal.Length)) +
geom_point(shape = 17, size = 3)


Para usar una forma diferente para cada grupo tendrás que pasar la variable categórica al argumento shape dentro de aes, de modo que se creará una leyenda de manera automática.
ggplot(iris, aes(x = Sepal.Length, y = Petal.Length, shape = Species)) +
geom_point(size = 2.5)
Ten en cuenta que ggplot2 solo utiliza seis formas por defecto, por lo que si tu variable tiene más grupos tendrás que establecer las formas manualmente.
scale_shape_manual
La función scale_shape_manual permite elegir la forma de cada grupo, pasando un vector al argumento values con tantas formas como grupos. En este ejemplo también asignamos los grupos a color, por lo que ambas leyendas se unen en una sola.
ggplot(iris, aes(x = Sepal.Length, y = Petal.Length, shape = Species, color = Species)) +
geom_point(size = 2.5) +
scale_shape_manual(values = c(16, 17, 15))


Las formas del 21 al 25 se pueden rellenar de un color con el argumento fill, mientras que color establece el color del borde. Además, el argumento stroke controla el grosor del borde y size el tamaño de los puntos. En este ejemplo rellenamos los puntos por grupo. Consulta la guía de colores en ggplot2 para personalizar los colores.
ggplot(iris, aes(x = Sepal.Length, y = Petal.Length, fill = Species)) +
geom_point(shape = 21, color = "black", size = 3, stroke = 1)
Aprende estadística desde lo básico hasta técnicas avanzadas, explicado con claridad
Ir al sitio
También te puede interesar