2014-09-23 5 views
10

Ich versuche, mehrere Dichte Plots mit Overlay zu kombinieren. ggplot und geom_density machen den Job, aber die Dichten sind übereinander gestapelt. This is overlaid but not 3dR: Wie: 3D Density Plot mit Gplot und Geom_density

ggplot(all.complete, aes(x=humid_temp)) + 
    geom_density(aes(group=height, colour=height, fill=height.f, alpha=0.1)) + 
    guides(fill = guide_legend(override.aes = list(colour = NULL))) + 
    labs(main="Temperature by Height", x="Temperature", y="Density") 

Etwas ähnliches wie das ist, was ich versuche zu erreichen: durch die Höhe ersetzt Density? with 3d overlay

In meinem Fall würde die Jahre.

Danke !!!

+0

Und können wir dann eine Reihe von Konturplots sehen, die pseudo-senkrecht zu einer Zeitachse angeordnet sind? Nicht wirklich. Ich bin hier nicht mein übliches sarkastisches Selbst. Ich denke, das ist im Lattice-Buch, Abbildung 14.3 (aber nicht mit der Pseudo-3D-Anordnung). –

+1

'ggplot' macht keine 3D-Grafik. Wenn Sie die untere Grafik möchten, müssen Sie ein anderes Paket verwenden. Sie könnten Facetten ausprobieren, aber mit so vielen Gruppen, die nicht informativ sein könnten. – jlhoward

Antwort

2

ich diese alten wissen, aber auch anderen Menschen mit dieser Art von Problem auf diesem Beitrag stolpern kann, so dass ich Ich dachte, ich würde eine kürzlich entdeckte Lösung hinzufügen. Es gibt ein neues Paket, das gerade erstellt wurde, um genau diese Art von Visualisierung zu machen. Es heißt ggjoy und wurde entwickelt, um mit dem ggplot2-System zu arbeiten. https://github.com/clauswilke/ggjoy dies hilfreich sein kann

Hoffnung:

alle Infos finden Sie hier!

+0

Endlich! Danke, Daniel! – rafaelvalle

2

Wie @jlhoward erwähnt, könnte die Verwendung von Facetten funktionieren oder Subplots verwenden, aber beide Optionen skalieren bei einer großen Anzahl von Gruppen nicht gut. Erwägen Sie stattdessen, ein ecdf-Diagramm zu verwenden.

, ohne die Daten in Ihrem Objekt all.complete, ich Ihr Grundstück nicht neu erstellen kann, ist so hier ein vereinfachtes Beispiel:

library(ggplot2) 

ggplot(iris, aes(x = Sepal.Length)) + 
    geom_density(aes(group = Species, 
        colour = Species, 
        fill = Species), 
       alpha = 0.2) 

density plot

Für mehr als ein paar Gruppen, ich Ich fand, dass ecdf-Plots viel einfacher zu interpretieren sind. Um ein ähnliches Grundstück zu machen:

ggplot(iris, aes(x = Sepal.Length)) + 
    stat_ecdf(aes(color = Species)) 

ecdf plot

Sie Dutzende von ECDF Stellplätze auf dem Grundstück haben kann, und da sie gerade Linien sind, trennen sie noch genug zu sehen. Dichtediagramme oder Histogramme würden wie in Ihrem Beispiel zu überlappen sein.

Dies ist die Blog-Post, die mich und verfügt über sie weitere Informationen mit ECDF Plots zu starten: http://allendowney.blogspot.com/2013/08/are-my-data-normal.html