【发布时间】:2019-11-23 15:04:00
【问题描述】:
从this 的问题中,我们在答案中看到了一个简单的geom_line。
library(dplyr)
BactData %>% filter(year(Date) == 2017) %>%
ggplot(aes(Date, Svartediket_CB )) + geom_line()
如果我们将geom_line 更改为geom_bar,我们可能希望看到一个条形图,但是
错误:stat_count() 不得与 y 美学一起使用。
但如果我们像这样添加stat = "identity",它就可以工作
library(dplyr)
BactData %>% filter(year(Date) == 2017) %>%
ggplot(aes(Date, Svartediket_CB )) + geom_bar(stat = "identity")
为什么没有stat = "identity" 就不能geom_bar 工作 - 即stat = "identity" 的目的是什么?
【问题讨论】:
-
您阅读过文档吗? “geom_bar() 使条形的高度与每组中的案例数成正比(或者如果提供了权重美学,则为权重的总和)。如果您希望条形的高度表示数据中的值,改用 geom_col()。geom_bar() 默认使用 stat_count():它计算每个 x 位置的案例数。geom_col() 使用 stat_identity():它保留数据原样。
geom_bar被添加为替代方案,它会为您计算。 -
@camille 所以
geom_bar(stat = "identity")和geom_col()做同样的事情吗? -
就我所见,是的。
geom_bar是一个希望做一些计算的版本;stat_identity是一种可能的计算方法,其中 y 值放置在它们的实际值处