我是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是错误的。我诚实地试过,如果有人认为我只是要求你为我做我的工作,我可以在最近两天在互联网上发布我的年表!
感谢您的支持,任何帮助都将非常感谢!新年快乐!
答案 0 :(得分:0)
我需要做一些假设,因为您的数据结构并不完全清楚。我非常肯定的是,您正在使用两个值对样本进行采样:
我的观点基于您对频率/计数的评论。如果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()
请注意我只指定x
值,然后geom_bar
会自动为我计算。你绝对不想要position=dodge
。
无论哪种方式,您都应该至少发布dput(head(dati))
的结果,以便人们可以提供更好的答案。