實施例的數據幀:ggplot箱線圖的多個列以因子與條件
a <- c(1, 0, 1)
b <- c(0, 1, 0)
c <- c(1, 0, 1)
total <- c(100,200,300)
my.data <- data.frame(a, b, c, total)
> my.data
a b c total
1 1 0 1 100
2 0 1 1 200
3 1 0 1 300
我想創建一個單獨的箱線圖,以顯示「總」的各列的分配:A,B,C,但只考慮那些值爲1. 示例:列a的第2行因爲它爲0而被忽略,所以列a的分佈爲100和300.列B的分佈爲200,列c的分佈爲100,200,300。
我可以單獨繪製出來:
ggplot(subset(my.data,a==1), aes(x=a,y=total)) +
geom_boxplot()
ggplot(subset(my.data,b==1), aes(x=b,y=total)) +
geom_boxplot()
ggplot(subset(my.data,c==1), aes(x=c,y=total)) +
geom_boxplot()
我也試過以下,但它是不正確:
ggplot(my.data, aes(x=as.factor(c("a","b","c")),y=total)) +
geom_boxplot()
希望有一個真棒一個R函數/方法,讓我做我的陰謀一槍。不要以爲我可以使用熔化(),因爲Total列。提前致謝。
編輯:顯然,我應該/可以使用熔化(),只需要正確使用它。
漂亮!謝謝@ user3640617。 – Perceptron