使用geom_abline(...) (以及geom_vline和geom_hline)是否会导致“天真地”使用同一行的多次过度绘制?
例如,假设我们对以下分面散点图感兴趣:
library(ggplot2)
library(dplyr)
k <- 4
data.frame(id = letters[1:k],
m = rnorm(k),
b = rnorm(k))[rep(1:k, 30),] %>%
mutate(x = rnorm(n()),
eps = 0.1*rnorm(n()),
y = m*x + b + eps) %>%
ggplot(aes(x, y)) +
geom_point() +
facet_wrap(~ id) ->
p向其添加ab-行文的最简单方法如下:
print(p + geom_abline(aes(slope = m, intercept = b), color = 'red'))这就是“正确的方法”吗?特别是,上面的图不是在每个面上画了30遍ab线吗?例如,这使它看起来像是:
print(p + geom_abline(aes(slope = m, intercept = b + eps), color = 'red'))如果是这样的话,这样做更好吗?
print(p + geom_abline(aes(slope = m, intercept = b),
data = Z %>% group_by(id) %>% summarize(m = unique(m), b = unique(b)),
color = 'red'))请注意,这会从第一个情节中产生一些视觉上难以理解的东西。我的问题是,如何正确地使用这些ggplot函数。
发布于 2017-07-24 19:00:28
通过使值唯一,geom_abline已经注意到同一位置的多行。您还可以通过运行例如p + geom_abline(aes(slope = m, intercept = b), color = 'red', alpha = .1)来验证--如果在同一点上是30行,则它们将是不透明的。
https://stackoverflow.com/questions/45287549
复制相似问题