Ось як я це роблю в базі (це фактично згадується в коментарях до першої відповіді, але я покажу тут повний код, включаючи легенду, оскільки я поки що не можу коментувати ...)
Спочатку потрібно отримати інформацію про максимальні значення осі y з графіків щільності. Тож спочатку потрібно фактично розрахувати щільності
dta_A <- density(VarA, na.rm = TRUE)
dta_B <- density(VarB, na.rm = TRUE)
Потім побудуйте їх відповідно до першої відповіді та визначте мінімальне та максимальне значення для осі y, яку ви щойно отримали. (Я встановив мінімальне значення 0)
plot(dta_A, col = "blue", main = "2 densities on one plot"),
ylim = c(0, max(dta_A$y,dta_B$y)))
lines(dta_B, col = "red")
Потім додайте легенду у верхній правий кут
legend("topright", c("VarA","VarB"), lty = c(1,1), col = c("blue","red"))
ggplot2
Зараз для сім'ї існує пакет, який "ggridges
" може це зробити.