【问题标题】:Make proportional stacked bar制作比例堆积条
【发布时间】:2017-05-22 11:58:59
【问题描述】:

我有一个数据框example 有两个变量 V1 和 V2,它们都是虚拟变量。我想创建一个以 V1 为 x 轴的堆叠比例图。

我尝试了以下方法,但图表未显示:

library(ggplot2)
library(plyr) 
library(dplyr)

example<-as.data.frame(cbind(c(0,0,0,0,1,1,1,0,1),c(0,1,0,0,1,0,0,0,1)))
class(example$V1)
class(example$V2)

ce = ddply(example, "V1", mutate, percent_v2 = sum(V2)/length(V2) * 100)
ggplot(ce, aes(x=V1, y=percent_v2, fill=V2),geom_bar(stat='identity'))

我认为fill=V2 可能是错误的,因为 V1 和 V2 都是整数,所以我尝试了 as.character(V2),但效果不佳。

【问题讨论】:

    标签: r ggplot2 bar-chart


    【解决方案1】:

    试试:

     ggplot(ce, aes(x=V1, y=percent_v2, fill=V2))+geom_bar(stat="identity")
    

    补充:

        V1 V2 percent_v2
     1  0  0         20
     2  0  1         20
     3  0  0         20
     4  0  0         20
     5  0  0         20
     6  1  1         50
     7  1  0         50
     8  1  0         50
     9  1  1         50
    

    【讨论】:

    • 我试过 ggplot(ce, aes(x=V1, y=percent_v2, fill=as.character(V2)))+geom_bar(stat="identity") 这看起来和我的相似想要但不应该都有 100 作为最大 ylim?我不知道为什么当 v1=1 时我得到 200 maxlim
    • 我在上面添加了数据和绘图。对于 V1==0 的情况,您的 percent_v2 总和为 100 。但 V1==1 的情况并非如此(你有 50% 4 次)
    猜你喜欢
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 2022-06-23
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    相关资源
    最近更新 更多