Frage

Ich habe drei Datensätze mit unterschiedlichen Längen und ich möchte Dichtefunktionen aller drei auf dem gleichen Grundstück plotten. Dies ist gerade nach vorne mit Basis Grafik:

n <- c(rnorm(10000), rnorm(10000))
a <- c(rnorm(10001), rnorm(10001, 0, 2))
p <- c(rnorm(10002), rnorm(10002, 2, .5))

plot(density(n))
lines(density(a))
lines(density(p))

Was mir so etwas wie dies gibt:

alt text http://www.cerebralmastication.com /wp-content/uploads/2009/10/density.png

Aber ich will wirklich diese mit ggplot2 tun, weil ich andere Funktionen hinzufügen möchten, die mit ggplot2 nur verfügbar sind. Es scheint, dass GGPLOT wirklich meine empirischen Daten will nehmen und die Dichte für mich zu berechnen. Und es gibt mir ein paar Lippe, weil meine Datensätze sind unterschiedlich lang. Also wie bekomme ich diese drei Dichten Grundstück in ggplot2?

War es hilfreich?

Lösung

Das Geheimnis zum Glück in ggplot2 ist alles im „long“ zu setzen (oder das, was ich denke, Matrix orientierte Menschen nennen würden „spärlich“) Format:

df <- rbind(data.frame(x="n",value=n),
            data.frame(x="a",value=a),
            data.frame(x="p",value=p))
qplot(value, colour=x, data=df, geom="density")

Wenn Sie keine Farben wollen:

qplot(value, group=x, data=df, geom="density")
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top