R'deki bir grafiğe birden çok barplot çizme [kapalı]


12

R'de tek bir grafik üzerinde dört barplot çizmek istiyorum. Aşağıdaki kodu kullandım. Burada, bir efsaneyi grafiğin üstünde nasıl tutabilir, özellikle efsane 2 ila 3 barplot arasında olmalıdır. Ben de denedim par(mar=c(4.1,4.1,8.1,4.1)ama başarı yok. Dahası, legend()ikinci barplottan sonra da koşmaya çalıştım, ama faydası yok. Efsane dört barplot için. Lütfen bu konuda bana yardım et.

    par(mfrow=c(1,4))
    barplot(t(A), beside=T, ylim=c(-100,100),..)
    barplot(t(B), beside=T, ylim=c(-100,100),..)
    barplot(t(C), beside=T, ylim=c(-100,100),..)
    barplot(t(D), beside=T, ylim=c(-100,100),..)
    legend(...)

1
Birisi bunu R ile etiketledi
Brandon Bertelsen

@Kevin Bu, geçerli bir Q; R'nin komut satırı arayüzüne sahip olması, herhangi bir R sorusunun programlama olduğu anlamına gelmez.

@Brandon Tabii; gelecekte önerilen düzenlemeleri kullanabilirsiniz, ayrıca kabul edilen öneri için 2 tekrar kazanırsınız.

Yanıtlar:


17

Dr Mike cevabı iyi biridir, ama ben faceting (veya trellising) yararlanmak özelliklerinin çözümler sunmak düşündüm ggplot2ve lattice. Önce verileri biraz hazırlayın:

mydata$id <- 1:nrow(mydata)
dat <- melt(mydata,id.vars = "id")

ve sonra aşağıdakileri yapabiliriz ggplot2:

ggplot(dat,aes(x=factor(id), y = value)) + 
    facet_wrap(~variable) +
    geom_bar(aes(fill = factor(id)))

resim açıklamasını buraya girin

ve kullanma lattice:

barchart(~value|variable,group = factor(id),data=dat,
         key = simpleKey(text = as.character(1:5),
                rectangles = TRUE,points = FALSE,space = "right"))

resim açıklamasını buraya girin


@Brandon - Bu benim yeni görevim. Bu sorular, base, ggplot2 ve kafes örneklerini içeriyorsa başkaları için daha iyi referanslardır.
joran

@Joran: Harika.
samarasa

Ggplot sürümünde "factor (id)" etiketini nasıl yeniden adlandırabilirim?
News_is_Selection_Bias

11

Bence en basit çözüm sorununuzu çözmek için barplot komutunun doğal yeteneklerini kullanmaktır. Aşağıdaki kod ben yorum yapmak istiyorum ne yapar.

mydata <- data.frame(Barplot1=rbinom(5,16,0.6), Barplot2=rbinom(5,16,0.25),
                     Barplot3=rbinom(5,5,0.25), Barplot4=rbinom(5,16,0.7))
barplot(as.matrix(mydata), main="Interesting", ylab="Total", beside=TRUE, 
        col=terrain.colors(5))
legend(13, 12, c("Label1","Label2","Label3","Label4","Label5"), cex=0.6, 
       fill=terrain.colors(5))

arsa

Umarım bu soruya cevap verir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.