我想将字符串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()的数据帧?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45088454/