堆积的条形图

时间:2013-10-23 22:37:33

标签: r plot bar-chart

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

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

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

现在,我只想绘制列改进处理的图表,显示两个条形图,它们是处理列的两个结果(经过处理,安慰剂)并将改进的列的结果叠加在一起。

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

'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 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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