我想将字符串N=xxx设置为图形标题,其中xxx是作为data参数传递给我的数据帧中观察值的数量。在当前代码中,我第二次显式传递该数据帧作为ggplot()的参数,该参数在sprintf()中使用:

ggplot(mtcars, aes(mpg, hp)) +
    labs(title=sprintf("N=%i", nrow(mtcars))) +
    geom_point()


这确实会产生所需的标题,但是它不适用于更复杂的任务:我使用labs()管道来构造要绘制的数据框,并且由于这是一个耗时的过程,所以我不想像示例中一样,再次重复管道以获取行数。

因此,如何从用于修改绘图的函数的参数规范中访问作为参数传递给dplyr的数据框?

最佳答案

mtcars %>% {
  ggplot(., aes(mpg, hp)) +
  labs(title = paste("N =", nrow(.))) +
  geom_point()
}


请注意,将整个ggplot调用包装在{...}大括号中时,必须对.中的data参数使用ggplot(., ...)点代词。然后,您可以在通话中的任何位置使用.代词回叫该对象。

r - 如何访问已传递给ggplot()的数据帧?-LMLPHP

关于r - 如何访问已传递给ggplot()的数据帧?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45088454/

10-13 07:24
查看更多