Как воспроизвести этот движущийся график распределения с помощью R?
Г. Эллиот Морис проявил политическую поляризацию во времени, используя подвижный сюжет.
Из этого вопроса: Как использовать "фасет" для создания графика с множественной плотностью в GGPLOT Мне удалось использовать фасеты для воспроизведения аналогичного графика с использованием фиктивных данных:
library(ggplot2)
set.seed(101)
dtf <- data.frame(variable = c(rnorm(1000),
rnorm(1000) + rep(1:10/2,each =100)),
group = rep(c("a","b"), each = 1000),
year = rep(2001:2010, each=100))
ggplot(dtf) +
geom_density(aes(x = variable, fill = group)) +
facet_grid(year ~.)
Но я бы хотел, чтобы распределения совпадали, как в оригинальном сюжете. Есть ли конкретное название для таких сюжетов и возможно ли их воспроизвести с помощью R?
[EDIT] Динамическая версия аналогичного графика доступна на этом графике глобального распределения температуры.
1 ответ
Обновление: пакет, использованный для создания этого сюжета, теперь называется "ggridges".
Для этого вам понадобится пакет ggjoy. Вот примерная версия, которая нуждается в некоторой уборке:
devtools::install_github("clauswilke/ggjoy")
library(ggjoy)
library(ggplot2)
#Create data frame
set.seed(101)
dtf <- data.frame(variable = c(rnorm(1000),
rnorm(1000) + rep(1:10/2,each =100)),
group = rep(c("a","b"), each = 1000),
year = rep(2001:2010, each=100))
# Use ggplot2 and ggjoy packages
ggplot(dtf,aes(x = variable, y = as.factor(year), fill = group)) +
geom_joy(scale = 2,alpha = .5,rel_min_height = 0.01) + theme_joy()
#> Picking joint bandwidth of 0.347