2013-04-15 23 views
6

R ve ggplot için oldukça yeni.Birden çok grup için farklı renklere sahip ggplot2 kutu grafiği oluştur

İki değişkene göre sıralanmış bir kutu grafiği oluşturmaya çalışıyorum. Benim durumumda Türler ve Deney. Ben

ggplot(DF, aes(Species, Protein, fill=Experiment, dodge=Experiment)) + 
    stat_boxplot(geom ='errorbar')+ 
    geom_boxplot() 

benim türlerin kutudiyagramlar ve her tür 2 bar, her deney için birine sahiptir kullanarak bugüne kadar ne var.

Benim sorum şu ki, bu şekilde renkleri değiştirmek mümkün, her tür için farklı renklere sahip olduğumu ve deneyler için bu renklerin farklı gölgelenmesini söyleyebilmemiz mümkün mü?

ilk türler daha koyu ve açık mavi bar, ikinci bir karanlık ve açık yeşil bar, vb

veri csv dosyası biçiminde olup şöyle olurdu, Sağlar ki:

Experiment,Species,Protein 
Spring,D_strigosa,5.107767364 
Spring,D_strigosa,8.288980741 
Spring,D_strigosa,7.537376567 
Spring,D_strigosa,4.811744241 
Spring,D_strigosa,9.559043454 
Spring,M_cavernosa,13.66759289 
Spring,M_cavernosa,23.54880195 
Spring,M_cavernosa,11.00790037 
Spring,M_cavernosa,13.70597973 
Spring,M_cavernosa,12.26970906 
Spring,M_faveolata,9.559043454 
Spring,M_faveolata,4.135860474 
Spring,M_faveolata,4.557306615 
Spring,M_faveolata,7.621872315 
Spring,M_faveolata,6.016859956 
Spring,M_annularis,6.294920733 
Spring,M_annularis,5.163371831 
Spring,M_annularis,2.177243143 
Spring,M_annularis,3.55966551 
Autumn,D_strigosa,3.709978392 
Autumn,D_strigosa,7.192777836 
Autumn,D_strigosa,5.31544441 
Autumn,D_strigosa,6.578602058 
Autumn,D_strigosa,5.610085559 
Autumn,M_cavernosa,11.64182554 
Autumn,M_cavernosa,10.44968102 
Autumn,M_cavernosa,9.377389318 
Autumn,M_cavernosa,10.99346107 
Autumn,M_cavernosa,11.5676896 
Autumn,M_faveolata,4.638054165 
Autumn,M_faveolata,7.191664953 
Autumn,M_faveolata,6.981827102 
Autumn,M_faveolata,6.386452477 
Autumn,M_annularis,4.709770404 
Autumn,M_annularis,3.554071459 
Autumn,M_annularis,4.596686351 
Autumn,M_annularis,3.530585628 

cevap

9

Sen fill= için interaction() kullanabilir ve interaction() iç hem Species ve Experiment sağlamalıdır. Ardından, scale_fill_manual() ile ihtiyacınız olan renkler için values='u ayarlayabilirsiniz (renk sayısı kutu arsa sayısına karşılık gelir). Renklerin sırası, ilk olarak, Autumn numaralı telefona Species için Spring numaralı telefondan Species renkleridir.

ggplot(DF, aes(Species, Protein, fill=interaction(Species,Experiment), dodge=Experiment)) + 
    stat_boxplot(geom ='errorbar')+ 
    geom_boxplot()+ 
    scale_fill_manual(values=c("blue","green","red","cyan", 
      + "darkblue","darkgreen","darkred","darkcyan")) 

enter image description here

+0

Muhteşem. Çok teşekkür ederim. Bu benim problemimi çözdü. – tim

+0

@Didzis Elferts, bu kullanışlı örnek için teşekkürler! Sormak istedim: 1. Türler arasındaki boşlukları arttırmak mümkün mü (veriyi kullandığım arsa çok yoğun); 2. "Deneyler" için renk kodu nasıl kullanılır (arsada 2 farklı renk ("Sonbahar", "Yay") ve her tür için aynı mıdır? – PoGibas

İlgili konular