Jestem nowy w R i próbuję wykreślić 3 histogramy na tym samym wykresie. Wszystko działało dobrze, ale mój problem polega na tym, że nie widać, gdzie nakładają się 2 histogramy - wyglądają raczej na obcięte.
Kiedy tworzę wykresy gęstości, wygląda to idealnie: każda krzywa jest otoczona czarną linią ramki, a kolory wyglądają inaczej, gdy krzywe się nakładają.
Czy ktoś może mi powiedzieć, czy coś podobnego można osiągnąć za pomocą histogramów z pierwszego rysunku? Oto kod, którego używam:
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)
Odpowiedzi:
Twój aktualny kod:
mówi,
ggplot
aby skonstruować jeden histogram przy użyciu wszystkich wartości w,f0
a następnie pokolorować słupki tego pojedynczego histogramu zgodnie ze zmiennąutt
.Zamiast tego chcesz utworzyć trzy oddzielne histogramy z mieszaniem alfa, aby były widoczne przez siebie. Więc prawdopodobnie chcesz użyć trzech oddzielnych wywołań
geom_histogram
, z których każdy otrzymuje własną ramkę danych i wypełnia:Oto konkretny przykład z danymi wyjściowymi:
co daje coś takiego:
Edytowano w celu poprawienia literówek; chciałeś wypełnić, a nie kolor.
źródło
scale_fill_manual()
.Korzystając z przykładowych danych @ joran,
zwróć uwagę, że domyślną pozycją
geom_histogram
jest „stos”.patrz „regulacja pozycji” na tej stronie:
docs.ggplot2.org/current/geom_histogram.html
źródło
position = 'identity'
to nie tylko bardziej czytelna odpowiedź, ale ładniej żeluje w przypadku bardziej skomplikowanych wątków, takich jak mieszane wywołaniaaes()
iaes_string()
.scale_fill_manual()
. Ta funkcja może być również używana do modyfikowania kolorów na histogramach.fill
jest czynnikiem.Chociaż do wykreślenia wielu / nakładających się histogramów w ggplot2 potrzeba tylko kilka linii, wyniki nie zawsze są zadowalające. Aby oko mogło rozróżniać histogramy, konieczne jest właściwe użycie granic i kolorów .
Następujące funkcje równoważą kolory granic, nieprzezroczystości i nałożone wykresy gęstości, aby umożliwić widzowi rozróżnienie między rozkładami .
Pojedynczy histogram :
Wielokrotny histogram :
Zastosowanie :
Po prostu przekaż ramkę danych do powyższych funkcji wraz z żądanymi argumentami:
Dodatkowy parametr w plot_multi_histogram to nazwa kolumny zawierającej etykiety kategorii.
Możemy to zobaczyć bardziej dramatycznie, tworząc ramkę danych z wieloma różnymi sposobami dystrybucji :
Przekazywanie ramki danych jak poprzednio (i poszerzanie wykresu za pomocą opcji):
źródło