Zweiwege-Dichtediagramm kombiniert mit einem Einwege-Dichtediagramm mit ausgewählten Regionen in r
# data
set.seed (123)
xvar <- c(rnorm (1000, 50, 30), rnorm (1000, 40, 10), rnorm (1000, 70, 10))
yvar <- xvar + rnorm (length (xvar), 0, 20)
myd <- data.frame (xvar, yvar)
# density plot for xvar
upperp = 80 # upper cutoff
lowerp = 30 # lower cutoff
x <- myd$xvar
plot(density(x))
dens <- density(x)
x11 <- min(which(dens$x <= lowerp))
x12 <- max(which(dens$x <= lowerp))
x21 <- min(which(dens$x > upperp))
x22 <- max(which(dens$x > upperp))
with(dens, polygon(x = c(x[c(x11, x11:x12, x12)]),
y = c(0, y[x11:x12], 0), col = "green"))
with(dens, polygon(x = c(x[c(x21, x21:x22, x22)]),
y = c(0, y[x21:x22], 0), col = "red"))
abline(v = c(mean(x)), lwd = 2, lty = 2, col = "red")
# density plot with yvar
upperp = 70 # upper cutoff
lowerp = 30 # lower cutoff
x <- myd$yvar
plot(density(x))
dens <- density(x)
x11 <- min(which(dens$x <= lowerp))
x12 <- max(which(dens$x <= lowerp))
x21 <- min(which(dens$x > upperp))
x22 <- max(which(dens$x > upperp))
with(dens, polygon(x = c(x[c(x11, x11:x12, x12)]),
y = c(0, y[x11:x12], 0), col = "green"))
with(dens, polygon(x = c(x[c(x21, x21:x22, x22)]),
y = c(0, y[x21:x22], 0), col = "red"))
abline(v = c(mean(x)), lwd = 2, lty = 2, col = "red")
Ich muss eine Zweiwege-Dichtedarstellung zeichnen. Ich bin mir nicht sicher, ob es einen besseren Weg gibt als den folgenden:
ggplot(myd,aes(x=xvar,y=yvar))+
stat_density2d(aes(fill=..level..), geom="polygon") +
scale_fill_gradient(low="blue", high="green") + theme_bw()
Ich möchte alle drei Typen zu einem kombinieren (ich wusste nicht, ob ich eine Zwei-Wege-Zeichnung in ggplot erstellen kann), es gibt keinen Vorzug, ob die Lösung darin besteht, dass Zeichnungen in ggplot oder base oder mixed sind. Ich hoffe, dass dieses Projekt machbar ist, wenn man die Robustheit von R berücksichtigt. Ich persönlich bevorzuge ggplot2.
Hinweis: Die untere Schattierung in diesem Diagramm ist nicht richtig. In xvar- und yvar-Diagrammen sollte Rot immer niedriger und die obere grüne Schattierung immer höher sein, entsprechend dem schattierten Bereich im xy-Dichtediagramm.
Bearbeiten: Ultimative Erwartung in der Grafik (danke seth und jon für die sehr genaue Antwort) (1) Entfernen von Leerzeichen und Achsenmarkierungen usw., um sie kompakt zu machen
(2) Ausrichten von Gittern, sodass die mittleren Teilstriche und Teilstriche mit den seitlichen Teilstrichen und Beschriftungen übereinstimmen und die Größe der Teilstriche gleich aussehen.