我有要绘制为直方图的数据。这是我的数据
convergence,rules,fact,time
1,domain,1802,8629
1,domain,1802,8913
1,rdfs,595,249
1,domain,1,9259
1,videcom,1,9071
2,domain,314151,9413
2,rdfs,8,253
....
我要绘制的是每个
convergence
值,每个time
的rules
之和这是我到目前为止所做的
库(ggplot2)
w <- read.csv(file="s2.csv", head=TRUE, sep=",")
p <- ggplot(data=w, aes(group=convergence, x=factor(rules))) + geom_bar(aes(colour="red")) + + geom_text(aes(y=time + 1000, colour="red", label=time)) + facet_grid( convergence ~ . )
ggsave(file="s2.1m.png", width=15)
但是结果并没有像我想要的那样每个
times
的总和。简单地说
我想要每个
rules
值的直方图代表其相应的rules
值的总和我在这里想念什么?
最佳答案
您需要使用weights
美学。这将通过仓的值对每个仓的计数加权。
ggplot(w, aes(x=rules, weights=time)) +
geom_bar() + facet_grid(convergence ~ .) +
geom_text(stat="bin", aes(label=..count..), color="red", vjust=-0.1)
为了使文本起作用,我们需要使用
stat="bin"
,这与geom_bar()
隐式执行的操作相同。然后,我们可以使用特殊值..count..
,该值引用在计算统计信息后内部产生的数据框ggplot
中的一列。关于r - 如何用ggplot2中列的总和来进行直方图显示?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27545024/