Mam wykresy rozrzutu danych 2D z dwóch kategorii. Chcę dodać linie gęstości dla każdego wymiaru - nie poza działką (porównaj Scatterplot with marginal histograms in ggplot2), ale bezpośrednio na powierzchni kreślarskiej. Mogę to dla wymiaru osi x, tak:ggplot2: dodaj warunkowe krzywe gęstości opisujące oba wymiary wykresu rozrzutu
set.seed(123)
dim1 <- c(rnorm(100, mean=1), rnorm(100, mean=4))
dim2 <- rnorm(200, mean=1)
cat <- factor(c(rep("a", 100), rep("b", 100)))
mydf <- data.frame(cbind(dim2, dim1, cat))
ggplot(data=mydf, aes(x=dim1, y=dim2, colour=as.factor(cat))) +
geom_point() +
stat_density(aes(x=dim1, y=(-2+(..scaled..))),
position="identity", geom="line")
Wygląda to tak:
Ale chcę analogiczna parę krzywych gęstości działa pionowo, pokazujący rozkład punktów w wymiarze y. Wypróbowałem
stat_density(aes(y=dim2, x=0+(..scaled..))), position="identity", geom="line)
ale otrzymałem błąd "stat_density wymaga następujących brakujących estetyki: x".
Wszelkie pomysły? Dzięki
dodałem swój (oczekuje) działka. To wygląda na trudne. Zastanawiam się, czy 'coord_flip' jest przydatny tutaj – C8H10N4O2
Jest to interesujące, chociaż nie jest to, czego szukasz:' ggplot (data = mydf, aes (x = dim1, y = dim2, color = as.factor (cat))) + stat_density2d() ' – C8H10N4O2