Наложение гистограмм с ggplot2 в R



Я новичок в R и пытаюсь построить 3 гистограммы на одном графике.
Все работало нормально, но моя проблема заключается в том, что вы не видите, где пересекаются 2 гистограммы - они выглядят отрезал: гистограмма



когда я делаю графики плотности, это выглядит идеально: каждая кривая окружена черной рамкой, а цвета выглядят по-разному, когда кривые перекрываются:Плотность Участка



может кто-нибудь сказать мне, если что-то подобное может быть достигнуто с гистограммы на 1-м рисунке? Это код, который я использую:



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)


заранее спасибо за любые полезные советы!

712   2  

2 ответов:

ваш текущий код:

ggplot(histogram, aes(f0, fill = utt)) + geom_histogram(alpha = 0.2)

говорит ggplot построить один гистограмма с использованием всех значений в f0 и затем раскрасьте полосы этой единственной гистограммы в соответствии с переменной utt.

вместо этого вы хотите создать три отдельные гистограммы с Альфа-смешиванием, чтобы они были видны друг через друга. Таким образом, вы, вероятно, хотите использовать три отдельных вызова geom_histogram, где каждый получает свой собственный фрейм данных и заполните:

ggplot(histogram, aes(f0)) + 
    geom_histogram(data = lowf0, fill = "red", alpha = 0.2) + 
    geom_histogram(data = mediumf0, fill = "blue", alpha = 0.2) +
    geom_histogram(data = highf0, fill = "green", alpha = 0.2) +

вот конкретный пример с некоторым выходом:

dat <- data.frame(xx = c(runif(100,20,50),runif(100,40,80),runif(100,0,30)),yy = rep(letters[1:3],each = 100))

ggplot(dat,aes(x=xx)) + 
    geom_histogram(data=subset(dat,yy == 'a'),fill = "red", alpha = 0.2) +
    geom_histogram(data=subset(dat,yy == 'b'),fill = "blue", alpha = 0.2) +
    geom_histogram(data=subset(dat,yy == 'c'),fill = "green", alpha = 0.2)

, который производит что-то вроде этого:

enter image description here

редактировать, чтобы исправить опечатки, вы хотели заполнить, а не цвет.

используя примерные данные @joran,

ggplot(dat, aes(x=xx, fill=yy)) + geom_histogram(alpha=0.2, position="identity")

обратите внимание, что положение по умолчанию geom_histogram это "стека."

см. "регулировка положения" на этой странице:

docs.ggplot2.org/current/geom_histogram.html

Comments

    Ничего не найдено.