我有问题,在防止相同的因素堆叠在自己的顶部时,绘制一个条形图。问题是,我不知道如何绘制这种因素的唯一值,我最终有它的n倍(n =倍的因素是重复)在同一个图。这里有一个很好的例子的问题:
library("ggplot2")
mydata <- data.frame(var_one=rep(c("a", "b", "c", "d", "e"), 5), var_two=rep(c(1.5, 2, 2.2, 1.8, 1.2), 5))
dev.new()
ggplot(mydata, aes(x=var_one, y=var_two)) +
geom_bar(stat="identity", fill="lightcoral", alpha=.8, width=.4, color="black")
我们的目标是只拥有多个堆叠因子中的一个。如何做到这一点?我也尝试使用geom_col
,而不是geom_bar
,但似乎没有解决问题。
dev.new()
ggplot(mydata, aes(x=var_one, y=var_two)) +
geom_col(fill="lightcoral", alpha=.8, width=.4, color="black")
这就是我需要的
mydata_mod <- data.frame(var_one=c("a", "b", "c", "d", "e"), var_two=c(1.5, 2, 2.2, 1.8, 1.2))
dev.new()
ggplot(mydata_mod, aes(x=var_one, y=var_two)) +
geom_bar(stat="identity", fill="lightcoral", alpha=.8, width=.4, color="black")
但问题是我使用的数据结构不是mydata_mod
的格式,而是定义为mydata
,我必须保持这种格式,有什么想法吗?
2条答案
按热度按时间wz8daaqr1#
通过使用
stat_summary
或在geom_bar
中切换到stat="summary"
来动态计算sum
,可以获得所需的结果:slhcrj9b2#
另一种选择是对数据进行争论: