使用ggplot2堆积的条形图

时间:2013-12-31 10:22:55

标签: r ggplot2 bar-chart

我是R的新手(我们在大学时使用它进行市场营销研究)。

所以,这就是事情:

我想使用ggplot2创建一个堆积的条形图,它为x线上的每个var显示3个不同颜色的矩形!在Y线上,我想放百分比,但即使频率也可以。

我发帖前三天一直在谷歌上搜索,我发誓。我不是程序员,所以有时甚至如果我找到了我需要的东西,我想我还没认识到它:/

这是我的尝试:

require(ggplot2)
head(dati)
ggplot(dati, aes(B4_1,B4_2,B4_3)) + geom_bar(position="dodge", stat="identity")

(但当然结果不对,因为它会将B4_1 var放在X上,而B4_2 var放在Y上< / p>

所以我试过了:

ggplot(dati, aes(B4_1)) + geom_bar(position="dodge",binwidth=x)

因为我认为它至少会给我根源!但它说没有找到x。

我试着搞乱这段代码,但是它一直给我不同的错误,就像x没有找到,bin是错误的。我诚实地试过,如果有人认为我只是要求你为我做我的工作,我可以在最近两天在互联网上发布我的年表!

感谢您的支持,任何帮助都将非常感谢!新年快乐!

1 个答案:

答案 0 :(得分:0)

我需要做一些假设,因为您的数据结构并不完全清楚。我非常肯定的是,您正在使用两个值对样本进行采样:

  • X
  • 可以是B4_1,B4_2,B4_3
  • 的东西

我的观点基于您对频率/计数的评论。如果B4_ *是具有值的实际变量,那么答案将会有所不同,但几乎肯定会涉及"melting" your data into long format

所以,那样:

# Make up data

data <- data.frame(
  x=sample(c("a", "b", "c"), 150, replace=T),
  lab=sample(c("B4_1", "B4_2", "B4_3"), 150, replace=T)
)
# Plot

ggplot(data, aes(x=x, fill=lab)) + geom_bar()

sample bar chart

请注意我只指定x值,然后geom_bar会自动为我计算。你绝对不想要position=dodge

无论哪种方式,您都应该至少发布dput(head(dati))的结果,以便人们可以提供更好的答案。