因此,我的数据集如下所示:
id group age length Bnull_subject Bnull_object Bnull_other
1 NS 23 NA 3 3 1
2 NS 23 NA 1 4 0
3 NS 58 NA 4 4 1
4 NS 24 NA 2 3 1
5 NS 32 NA 3 2 0
6 NS 24 NA 4 1 1
7 NS 25 NA 5 2 0
8 NS 24 NA 3 2 0
9 NS 25 NA 3 2 0
22 ATT 26 [5-7] 4 4 0
23 ATT 28 [5-7] 4 1 0
24 ATT 28 [5-7] 5 3 1
25 ATT 28 [5-7] 1 5 1
26 ATT 26 [5-7] 4 2 0
27 ATT 29 [5-7] 3 2 0
我正在试图创建一个带有y轴上持久化的ggplot的标杆,但由于某种原因,我无法使它正确工作。这是我使用的代码
dset.bnull <- subset(dset, select = c(group, length, Bnull_subject, Bnull_object, Bnull_other))
library(reshape2)
library(ggplot2)
library(scales)
mdat <- melt(dset.bnull[c(1,3:5)], id.vars="group") #?melt <- Converts an object into a molten data frame
head(mdat) #Shows top observations of your data
ggplot(mdat, aes(variable, value, fill = group)) +
geom_bar(aes(y = (value)/sum(value)), stat = "identity", position=position_dodge(1)) +
scale_y_continuous(labels = percent) + #Use percentage on y axis
xlab("Referent") + #Rename x axis
ylab("Percentage of Answers") + #Rename y axis
guides(fill=guide_legend(title="Experimental \nGroup"))
我得到的情节是..。(这显然是错误的)
对我该做什么有什么帮助吗?
提前谢谢你
发布于 2016-07-13 10:52:26
我想你的melt
搞错了。
试一试
mdat <- melt(dset.bnull[c(1:2, 5:7)], id.vars=c("id", "group"))
移除
position=position_dodge(1)
来自geom_bar
的电话。
更新:从你的评论来看,我猜你很习惯使用dplyr
。在总结数据之后,绘制图将更加直观。
plot_data = mdat %>% group_by(group, variable) %>% summarise(total = sum(value))
ggplot(plot_data, aes(fill = group)) +
geom_bar(aes(x = variable,
y = (total)/sum(total)),
stat = "identity",
position = "dodge") +
scale_y_continuous(labels = percent) +
xlab("Referent") +
ylab("Percentage of Answers") +
guides(fill=guide_legend(title="Experimental \nGroup"))
https://stackoverflow.com/questions/38348772
复制相似问题