2017-07-17 40 views
0

我有這個示例數據。如何在ggplot2的同一個圖表中添加兩個盒子圖

sample <- data.frame(sample = 1:12, 
        site = c('A','A','A','B','B','B','A','A','A','B','B','B'), 
        month = c(rep('Feb', 6), rep('Aug', 6)), 
        Ar = c(7,8,9,8,9,9,4,5,7,5,8,9)) 

而且創造了兩個箱圖

ggplot(sample, aes(x=factor(month), y=Ar)) + 
    geom_boxplot(aes(fill=site)) 

ggplot(sample, aes(x=factor(month), y=Ar)) + 
    geom_boxplot() 

我不知道是否有一種方法將它們在同一個圖形相結合,使總,站點A和B站點緊挨着對方每每個月。

回答

0

您可以利用dplyr(通過tidyverse包)和reshape2

library(dplyr) 
library(reshape2) 

sample%>% 
    dplyr::select(-sample) %>% 
    mutate(global = 'Global') %>% 
    melt(., id.vars=c("month", "Ar")) %>% 
    ggplot(aes(month, Ar)) + geom_boxplot(aes(month, Ar, fill=value)) 

此作爲你當前沒有使用則丟棄該樣品柱,增加了該術語在單獨的列全球經由melt功能重塑數據,並且生成的圖。請注意,我更改了原始問題中的輸入代碼格式。隨着data.frame的變化,您不再需要將變量強制爲因素。

+0

它的工作原理!非常感謝! –

相關問題