首页 文章

堆积的条形图

提问于
浏览
0

我正在努力弄清楚如何在R中制作堆积条形图 .

首先,我正在使用的数据来自VCD包

data("Arthritis", package = "vcd")

现在,我只想绘制列 ImprovedTreatment 的图形,显示两个条形,它们是 Treatment 列(Treated,Placebo)的两个结果,并且 Improved 列的结果堆叠在一起 .

我尝试了一些命令,但它一直给我一个错误说:

'height' must be a vector or a matrix

所以我做了以下工作,但它给了我关节炎数据集中所有列的所有结果 .

arth <- as.matrix(Arthritis)
barplot(arth,
        main="Improvements in Treated vs Placebo",
        col=c("green","yellow", "blue"),
        xlab="Treatment",
        ylab="Frequency")

我不知道该怎么办了 . 任何帮助或指导都会令人惊叹 .

2 回答

  • 1

    你的方法有些不对劲 . 我想你想要这样的东西:

    barplot(xtabs(~ Improved + Treatment, data = Arthritis))
    
  • 1

    您也可以尝试 ggplot . 数据应该在 data.frame (无需转换为矩阵) . 默认 geom_bar 计算每组中的案例数(无需制表) .

    library(ggplot2)
    ggplot(data = Arthritis, aes(x = Treatment, fill = Improved)) +
      geom_bar() +
      scale_fill_manual(values = c("green","yellow", "blue")) +
      ggtitle("Improvements in Treated vs Placebo") +
      xlab("Treatment") +
      ylab("Frequency")
    

    enter image description here

相关问题