首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Geom_abline(.)多次绘制数据?

Geom_abline(.)多次绘制数据?
EN

Stack Overflow用户
提问于 2017-07-24 18:25:49
回答 1查看 532关注 0票数 3

使用geom_abline(...) (以及geom_vlinegeom_hline)是否会导致“天真地”使用同一行的多次过度绘制?

例如,假设我们对以下分面散点图感兴趣:

代码语言:javascript
复制
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-行文的最简单方法如下:

代码语言:javascript
复制
print(p + geom_abline(aes(slope = m, intercept = b), color = 'red'))

这就是“正确的方法”吗?特别是,上面的图不是在每个面上画了30遍ab线吗?例如,这使它看起来像是:

代码语言:javascript
复制
print(p + geom_abline(aes(slope = m, intercept = b + eps), color = 'red'))

如果是这样的话,这样做更好吗?

代码语言:javascript
复制
print(p + geom_abline(aes(slope = m, intercept = b), 
                      data = Z %>% group_by(id) %>% summarize(m = unique(m), b = unique(b)),
                      color = 'red'))

请注意,这会从第一个情节中产生一些视觉上难以理解的东西。我的问题是,如何正确地使用这些ggplot函数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-24 19:00:28

通过使值唯一,geom_abline已经注意到同一位置的多行。您还可以通过运行例如p + geom_abline(aes(slope = m, intercept = b), color = 'red', alpha = .1)来验证--如果在同一点上是30行,则它们将是不透明的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45287549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档