0

我很难弄清楚如何在 R 中制作堆积条形图。

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

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

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

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

'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")

我不知道该尝试什么了。任何帮助或指导都会很棒。

4

2 回答 2

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")

在此处输入图像描述

于 2013-10-23T23:16:00.167 回答
1

你的方法有几个问题。我想你想要这样的东西:

barplot(xtabs(~ Improved + Treatment, data = Arthritis))
于 2013-10-23T22:48:49.437 回答