I found below example:
library(ggplot2)
library(ggridges)
ggplot(iris, aes(x = Sepal.Length, y = Species)) +
geom_density_ridges(
jittered_points = TRUE,
position = position_points_jitter(width = 0.05, height = 0),
point_shape = '|', point_size = 3, point_alpha = 1, alpha = 0.7,
)
iris$cat <- factor(sample(1:5, size = nrow(iris), replace = TRUE))
In my application, I have an additional category, cat
besides Species.
Is there any way to distinguish the below rug by cat
using colors?
I tried aes(points_color = cat),
but the result is undesired.
Please help.
This should do the trick
library(ggplot2)
library(ggridges)
iris$cat <- factor(sample(1:5, size = nrow(iris), replace = TRUE))
ggplot() +
geom_density_ridges(
data = iris, aes(x = Sepal.Length, y = Species), alpha = 0.7) +
geom_density_ridges(
data = iris, aes(x = Sepal.Length, y = Species, point_color = cat),
jittered_points = TRUE, linetype = 0,
position = position_points_jitter(width = 0.05, height = 0),
point_shape = '|', point_size = 3, point_alpha = 1, alpha = 0
) +
scale_color_viridis_d(aesthetics = "point_color")
# scale_discrete_manual(aesthetics = "point_color",
# values = c('black', 'red', 'grey', 'purple', 'blue'))
I put in two different ways to select the color values, just commented out the manual way.