【问题标题】:Error preventing from producing bar chart防止生成条形图时出错
【发布时间】:2021-01-12 14:31:57
【问题描述】:
structure(list(Young = c(FALSE, TRUE), pop = c(221294L, 574721L), p = c(0.278002298951653, 0.721997701048347)), class = "data.frame", row.names = c(NA, -2L))

我正在寻找使用我的数据框制作堆叠条形图,但是当我使用 ggplot 时,我继续收到错误。

错误:stat_count() 只能有 x 或 y 美学。

ggplot(data = young, aes(x = Young, y = p)) + geom_bar(position = "fill") + labs(x = "Age Bracket", y = "Proportion")

谁能向我解释为什么 R 不会生成条形图,以及我可以对上述代码进行哪些更正以使用“p”列中的比例生成堆积条形图?

谢谢

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    geom_bar 中需要 stat="identity"

    ggplot(data = young, aes(x = Young, y = p)) + geom_bar(position = "fill", stat = "identity") + labs(x = "Age Bracket", y = "Proportion")
    

    要获得单个堆叠条,请定义一个新变量,如下所示。

    young$state <- c("TrueorFalse","TrueorFalse")
    
    p <- ggplot(data = young, aes(x = state, y = p, fill=Young)) + #
      geom_bar(position="stack", stat="identity") + 
      labs(x = "Age Bracket", y = "Proportion")
    p
    

    【讨论】:

    • 好的,但是 ggplot 怎么会产生两个条而不是 2 个呢?我希望将“FALSE”栏堆叠在“TRUE”栏上
    【解决方案2】:

    我想这可能是你所追求的

    ggplot(data = cbind(id = 1,young), aes(x = id, y = p, fill = Young)) +
      geom_bar(position = "fill", stat = "identity") +
      labs(x = "Age Bracket", y = "Proportion")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      • 2013-01-30
      相关资源
      最近更新 更多