2017-05-08 56 views
5

Aşağıdaki konularla ilgili sorun yaşıyorum. 3 faktör değişkeni vs 1 sayısal değişkeni barplot ihtiyacım var.Gruplandırılmış Barplot, Bir sayısal vs üç faktörlü değişken

Benim veri kümesi:

Site,Gall,Status,Count 
Site1,absent,unhealthy,35 
Site1,absent,healthy,1750 
Site1,present,unhealthy,23 
Site1,present,healthy,1146 
Site2,absent,unhealthy,146 
Site2,absent,healthy,1642 
Site2,present,unhealthy,30 
Site2,present,healthy,333 

Ben ggplot kullanarak denedi, ama sonra sadece beni x, y, ve bir daha seçeneğini tanımlamak sağlar, bu yüzden = Safra dolgusunu kullandık.

Kodum aşağıdaki gibi görünüyor, hala bir faktör değişkeni eksik.

ggplot(dat, aes(Status, Count, fill = Gall)) + 
    geom_bar(stat = "identity", position = "dodge") 

Lütfen bana yardımcı olabilir misiniz?

çok çözümlerin bir çift vardır

+1

Üçüncü faktör eklemek eşlemenizde 'grup = Site' gibi bir şey ekleyebilir. Bir 'facet_wrap' sayısız bilgi sunmak için daha iyi bir yol olabilir. –

+0

@AdamQuek - Daha fazla yardımcı oldu, Faktör Sitesi için facet_wrap kullandım ve tam olarak nasıl istediğimi görüyorum! Çok teşekkür ederim, zaman adam için teşekkürler! – RLover

+0

Ayrıca bkz. [Ggplot2 çubuk grafiğinin çoklu alt grupları] (http://stackoverflow.com/questions/20060949/ggplot2-multiple-sub-groups-of-a-bar-chart). – Henrik

cevap

2

takdir, teşekkür ederiz. Eğer iki faktör tarafından doldurulması niyet varsa, interaction kullanabilirsiniz: Genel olarak

ggplot(dat, aes(Status, Count)) + 
    geom_col(aes(fill = interaction(Site, Gall)), position = "dodge") 

enter image description here

olsa da, birden fazla faktörü Faceting kullanmak daha iyidir. Örneğin:

ggplot(dat, aes(Status, Count)) + 
    geom_col(aes(fill = Gall), position = "dodge") + facet_grid(Site ~ .) 

enter image description here

2

noktalarla yerine çubuklarla daha iyi olabilir. Örneğin:

library(dplyr) 
library(ggplot2) 

ggplot(dat %>% mutate(Site = gsub("([0-9]$)", " \\1", Site)), 
     aes(Status, Count, colour=Status, shape=Gall)) + 
    geom_point(size=3, position=position_dodge(0.5), stroke=1) + 
    facet_grid(~ Site, switch="x") + 
    theme_classic() + 
    theme(strip.placement = "outside", 
     strip.background=element_blank()) + 
    scale_colour_manual(values=hcl(c(195,15),100,65)) + 
    scale_shape_manual(values=c(1,16)) + 
    labs(x="") + 
    guides(colour=FALSE) 

enter image description here

+0

Herkese teşekkürler, böyle hızlı, ayrıntılı ve yardımcı cevaplar beklemiyordum! İlk kez bu forumu kullanıyorum ve inanılmaz. – RLover