zwei-Wege-density-plot kombiniert mit der einen density plot 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")
Muss ich zum Plotten zwei-Wege-density-plot, ich bin nicht sicher, es gibt besseren Weg, 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()
Möchte ich kombinieren alle drei Arten in eine (ich weiss nicht, ob ich es schaffen kann zwei-Wege-plot in ggplot), es ist nicht prefrence auf, ob die Lösung die Grundstücke sind in ggplot-oder base oder gemischt. Ich hoffe, das ist machbar Projekt, wenn man bedenkt Robustheit von R. ich persönlich bevorzuge ggplot2.
Hinweis: die untere Schattierung in diesem plot ist nicht rechts, rot sollte immer die unteren und oberen grünen in xvar und yvar Graphen, entsprechend den schattierten region in der xy-density-plot.
Edit: Ultimate Erwartung auf die Grafik (Dank seth und jon für sehr nahe Antwort)
(1) das entfernen Platz und hilfsstrichbeschriftungen, etc machen es kompakt
(2) Ausrichtungen der Netze, so dass Mitte plot ticks und raster ausrichten soll mit Seite ticks und labels und die Größe der Parzellen gleich Aussehen.
- Eine Antwort hier kann helfen, mit der immer dichten mit ggplot stackoverflow.com/questions/8545035/...
- Ihre Frage ist sehr inspirierend und ich Frage mich, wenn Sie könnten die letzten codes, die in der Lage sind, um eine Darstellung der Abbildung in deinem post? Vielen Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist das Beispiel für die Kombination mehrerer Grundstücke mit Ausrichtung:
beachten Sie, dass dies funktioniert mit gglot2 0.9.1, und in der zukünftigen Version, die Sie machen können es einfacher.
Und schließlich
können Sie tun, indem:
Wie in dem Beispiel, das ich im Zusammenhang mit oben Sie müssen die gridExtra Paket.
Dies ist die g, die Sie Gaben.
verwenden geom_rect zu ziehen, die zwei Regionen
Dies ist eine einfache ggplot Histogramm; es fehlt Ihr farbiges Regionen,
aber Sie sind ziemlich einfach
Stellen Sie ein leeres Diagramm zu füllen, in die Ecke
Dann verwenden Sie das raster.arrangieren-Funktion:
Nicht sehr hübsch, aber die Idee ist da.
Sie müssen sicherstellen, dass die Skalen passen auch!
Gebäude auf Seths Antwort (danke Seth, und Sie verdienen alle credits), ich verbesserte einige der Fragen, die durch die Fragesteller. Als Kommentar ist zu kurz, um zu beantworten alle Fragen, die ich wählen, um dies als Antwort von selbst. Ein paar Fragen sind noch da, die Ihre Hilfe brauchen:
Mitte Abbildung
geom_rect zwei Regionen
Top-Histogramm mit schattierten region
rechten Histogramm mit schattierten region
Stellen Sie ein leeres Diagramm zu füllen, in die Ecke
Dann verwenden Sie das raster.arrangieren-Funktion:
PS: (1) Kann jemand helfen, richten Sie die Graphen perfekt ? (2) Kann jemand helfen, entfernen Sie die zusätzlichen Raum zwischen den Parzellen, ich habe versucht, passen Sie die Margen - aber es ist der Raum zwischen x-und y-density-plot und zentralen Grundstück.