2012-01-17 21 views
11

ben seçenek pozisyon eklemek için denedim aşağıdaki veri kümeleribirden histogramlar - pozisyon

dataset1=data.frame(obs=runif(20,min=1,max=10)) 
dataset2=data.frame(obs=runif(20,min=1,max=20)) 
dataset3=data.frame(obs=runif(20,min=5,max=10)) 
dataset4=data.frame(obs=runif(20,min=8,max=10)) 

yan yana çizmek çalışıyorum = hayır şans ile geom_histogram için "atlatmak". Histogram sütunlarını üst üste gelmeden yan yana çizmek için aşağıdaki kodu nasıl değiştirebilirim ?? Tüm veriler, tek bir veri çerçevesi içinde yer aldığını ve farklı grupların veri çerçevesi içinde diğer değişkenler tarafından tarif edilmiştir, burada "uzun" veriler, en iyi şekilde çalışır ggplot2

ggplot(data = dataset1,aes_string(x = "obs",fill="dataset")) + 
geom_histogram(binwidth = 1,colour="black", fill="blue")+ 
geom_histogram(data=dataset2, aes_string(x="obs"),binwidth = 1,colour="black",fill="green")+ 
geom_histogram(data=dataset3, aes_string(x="obs"),binwidth = 1,colour="black",fill="red")+ 
geom_histogram(data=dataset4, aes_string(x="obs"),binwidth = 1,colour="black",fill="orange") 

cevap

22

. Ben size histogramlar kullanılan değerlere sahip bir fill sütun ekledik Bu amaçla

DF <- rbind(data.frame(fill="blue", obs=dataset1$obs), 
      data.frame(fill="green", obs=dataset2$obs), 
      data.frame(fill="red", obs=dataset3$obs), 
      data.frame(fill="orange", obs=dataset3$obs)) 

belirleyin. göz önüne alındığında, arsa ile yapılabilir: position="dodge" şimdi çalışıyor

ggplot(DF, aes(x=obs, fill=fill)) + 
    geom_histogram(binwidth=1, colour="black", position="dodge") + 
    scale_fill_identity() 

.

enter image description here

Sen ayrım olarak literal dolgu rengi kullanmak zorunda değilsiniz. Bunun yerine veri kümesi numarasını kullanan bir sürüm.

DF <- rbind(data.frame(dataset=1, obs=dataset1$obs), 
      data.frame(dataset=2, obs=dataset2$obs), 
      data.frame(dataset=3, obs=dataset3$obs), 
      data.frame(dataset=4, obs=dataset3$obs)) 
DF$dataset <- as.factor(DF$dataset) 
ggplot(DF, aes(x=obs, fill=dataset)) + 
    geom_histogram(binwidth=1, colour="black", position="dodge") + 
    scale_fill_manual(breaks=1:4, values=c("blue","green","red","orange")) 

Bu, lejand haricinde aynıdır.

enter image description here