library(ggpointdensity)
library(viridis)
ggplot(data = diamonds, mapping = aes(x = jitter(carat), y = jitter(price))) +
geom_pointdensity(method = 'default') +
scale_color_viridis() + theme_bw() +
facet_grid(~ cut, scales = 'free')
Обратите внимание на результат ниже, все грани окрашены на основе одной общей глобальной шкалы плотности . Как я могу заставить каждый фасет иметь свою собственную шкалу, поэтому он будет раскрашен только на основе их количества точек данных, а не относительно других точек данных из другого фасета.
Мое текущее не очень оптимальное решение - использовать пэчворк
library(patchwork)
r1 <- ggplot(data = diamonds %>% filter(cut == 'Fair'), mapping = aes(x = jitter(carat), y = jitter(price))) +
geom_pointdensity(method = 'default') +
scale_color_viridis() + theme_bw()
r2 <- ggplot(data = diamonds %>% filter(cut == 'Good'), mapping = aes(x = jitter(carat), y = jitter(price))) +
geom_pointdensity(method = 'default') +
scale_color_viridis() + theme_bw()
r3 <- ggplot(data = diamonds %>% filter(cut == 'Very Good'), mapping = aes(x = jitter(carat), y = jitter(price))) +
geom_pointdensity(method = 'default') +
scale_color_viridis() + theme_bw()
r4 <- ggplot(data = diamonds %>% filter(cut == 'Premium'), mapping = aes(x = jitter(carat), y = jitter(price))) +
geom_pointdensity(method = 'default') +
scale_color_viridis() + theme_bw()
r5 <- ggplot(data = diamonds %>% filter(cut == 'Ideal'), mapping = aes(x = jitter(carat), y = jitter(price))) +
geom_pointdensity(method = 'default') +
scale_color_viridis() + theme_bw()
r1 + r2 + r3 + r4 + r5