实施例的数据帧: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