【问题标题】:R Barplot multiple variables by another variableR Barplot多个变量由另一个变量
【发布时间】:2014-07-22 12:23:38
【问题描述】:

我有一个这样的数据框:

data <- data.frame(Sex = c("female", "male", "male", "female"),
                  A1 = c(T,T,F,F),
                  A2 = c(T,F,F,F),
                  A3 = c(T,T,T,F)) 

我想要一个单一的条形图,它向我显示 A1、A2 和 A3 按女性和男性分组的 Trues 的频率。

我试过了:

# table: 
a <- round(prop.table(table(data$Sex, data$A1))*100, 4)
b <- round(prop.table(table(data$Sex, data$A2))*100, 4)
c <- round(prop.table(table(data$Sex, data$A3))*100, 4)

propVars <- cbind(a, b, c)

# remove false:
propVars <- propVars[,c(2,4,6)]

# plot:
barplot(propVars,beside = T)

但现在我得到了 x 轴上的 Trues 和不同条形的性别。但我喜欢让女性在 x 轴的左侧,男性在 x 轴的右侧。对于 A1、A2 和 A3,我想要一个条形图,显示每一侧的真实频率,一个用于女性,一个用于男性。我希望你明白:)

谢谢

【问题讨论】:

  • 您是否对 ggplot2lattice 等其他绘图库开放,或者它应该是基本的 R 条形图?
  • 如果可能的话应该是基本的 R 条形图。我用它制作了其他一些情节,不想改变外观。但是,如果 r barplot 非常困难,我也会对 ggplot2 或 lattice 解决方案感到满意。
  • 您确定这是您正在运行的代码吗?我在cbind 步骤收到投诉(“矩阵的行数必须匹配(参见参数 3)”)
  • 对不起..你是对的。这不是我正在使用的实际数据框。我把它改成了一个小得多的。但现在我在我的问题中编辑了示例数据框,现在它应该可以工作了。

标签: r plot bar-chart


【解决方案1】:

试试:

 barplot(t(propVars),beside=T)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 2013-12-21
    • 2018-05-13
    • 2018-03-17
    相关资源
    最近更新 更多