Ich bin neu in R und versuche, 3 Histogramme auf demselben Diagramm zu zeichnen. Alles hat gut funktioniert, aber mein Problem ist, dass Sie nicht sehen, wo sich 2 Histogramme überlappen - sie sehen eher abgeschnitten aus.
Wenn ich Dichtediagramme erstelle, sieht es perfekt aus: Jede Kurve ist von einer schwarzen Rahmenlinie umgeben, und Farben sehen dort anders aus, wo sich Kurven überlappen.
Kann mir jemand sagen, ob mit den Histogrammen im 1. Bild etwas Ähnliches erreicht werden kann? Dies ist der Code, den ich verwende:
lowf0 <-read.csv (....)
mediumf0 <-read.csv (....)
highf0 <-read.csv(....)
lowf0$utt<-'low f0'
mediumf0$utt<-'medium f0'
highf0$utt<-'high f0'
histogram<-rbind(lowf0,mediumf0,highf0)
ggplot(histogram, aes(f0, fill = utt)) + geom_histogram(alpha = 0.2)
Antworten:
Ihr aktueller Code:
sagt
ggplot
, ein Histogramm mit allen Werten in zu erstellenf0
und dann die Balken dieses einzelnen Histogramms entsprechend der Variablen zu färbenutt
.Stattdessen möchten Sie drei separate Histogramme mit Alpha-Überblendung erstellen, sodass sie durcheinander sichtbar sind. Sie möchten also wahrscheinlich drei separate Aufrufe an verwenden
geom_histogram
, bei denen jeder seinen eigenen Datenrahmen erhält und ausfüllt:Hier ist ein konkretes Beispiel mit einigen Ergebnissen:
was so etwas hervorbringt:
Bearbeitet, um Tippfehler zu beheben; Sie wollten füllen, nicht Farbe.
quelle
scale_fill_manual()
.Unter Verwendung der Beispieldaten von @ joran
Beachten Sie, dass die Standardposition von
geom_histogram
"Stapel" ist.siehe "Positionseinstellung" dieser Seite:
docs.ggplot2.org/current/geom_histogram.html
quelle
position = 'identity'
ist nicht nur eine besser lesbare Antwort, sondern lässt sich auch besser mit komplizierteren Plots wie gemischten Anrufen anaes()
und kombinierenaes_string()
.scale_fill_manual()
. Diese Funktion kann auch verwendet werden, um die Farben in den Histogrammen zu ändern.fill
ein Faktor ist.Während nur wenige Linien erforderlich sind, um mehrere / überlappende Histogramme in ggplot2 zu zeichnen, sind die Ergebnisse nicht immer zufriedenstellend. Ränder und Farben müssen ordnungsgemäß verwendet werden, um sicherzustellen, dass das Auge zwischen Histogrammen unterscheiden kann .
Die folgenden Funktionen gleichen Randfarben, Opazitäten und überlagerte Dichtediagramme aus , damit der Betrachter zwischen Verteilungen unterscheiden kann .
Einzelhistogramm :
Mehrfachhistogramm :
Verwendung :
Übergeben Sie einfach Ihren Datenrahmen zusammen mit den gewünschten Argumenten an die oben genannten Funktionen :
Der zusätzliche Parameter in plot_multi_histogram ist der Name der Spalte, die die Kategoriebeschriftungen enthält.
Wir können dies dramatischer sehen, indem wir einen Datenrahmen mit vielen verschiedenen Verteilungsmitteln erstellen :
Datenrahmen wie zuvor übergeben (und Diagramm mithilfe von Optionen erweitern):
quelle