2013-04-15 30 views
6

Tôi khá mới đối với R và ggplot.Tạo hộp ggplot2 với các màu khác nhau cho nhiều nhóm

Tôi đang cố gắng tạo một ô mẫu được sắp xếp theo hai biến. Trong trường hợp của tôi Loài và thí nghiệm. Những gì tôi nhận được cho đến nay bằng cách sử dụng

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

là ô của các loài và mỗi loài có 2 thanh, mỗi thanh cho mỗi thử nghiệm.

Câu hỏi của tôi bây giờ là có thể thay đổi màu theo cách này, rằng tôi có các màu khác nhau cho mỗi loài và cho phép nói, các màu khác nhau cho các thử nghiệm đó?

phép nói rằng, các loài đầu tiên hơn sẽ có một tối và ánh sáng thanh màu xanh, thứ hai là một thanh màu xanh đậm và ánh sáng, vv

Các dữ liệu ở dạng của một tập tin csv và trông như thế này:

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 

Trả lời

9

Bạn nên sử dụng interaction() cho fill= và cung cấp cả SpeciesExperiment bên interaction(). Sau đó, với scale_fill_manual() bạn có thể đặt values= cho các màu bạn cần (số màu tương ứng với số ô ô). Thứ tự của màu sắc là, trước tiên, màu sắc cho Species trong Autumn rồi màu sắc cho Species trong Spring.

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

ảnh vui nhộn. Cảm ơn nhiều. Điều đó đã giải quyết được vấn đề của tôi. – tim

+0

@Didzis Elferts, cảm ơn ví dụ hữu ích này! Muốn hỏi: 1. Có thể tăng không gian giữa các loài (lô đất tôi sử dụng dữ liệu của tôi quá dày đặc); 2. Cách sử dụng mã màu cho "Thử nghiệm" (2 màu khác nhau trong ô ('Mùa thu',' Mùa xuân ') và chúng giống nhau cho mọi loài)? – PoGibas

Các vấn đề liên quan