您可以将`print()`传递给ggplot而不将其包装在`()`中吗

时间:2018-10-29 08:32:01

标签: r ggplot2 dplyr

library(tidyverse)
(
  e <- ggplot(mpg, aes(cty, hwy)) + 
    geom_point()
) %>% 
  print()

有没有“更漂亮” 的方法? 'this'表示打印存储的ggplot对象。我经常不得不将图存储为对象,但也希望看到它们。 ()换行确实使事情变得难看。似乎有悖于基本tidyverse原则。我知道我可以在结尾简单地喊出e,但我也不喜欢。像这样的东西真酷。看看区别。

library(tidyverse)
f <- mtcars %>% 
  select(cyl) %>% 
  as_tibble() %>% 
  print()  # redundant, just proving a point

2 个答案:

答案 0 :(得分:1)

如果仅与管道使用的一致性有关,则可以尝试使用ggformula软件包,该软件包无需使用ggplot2的语法即可访问ggplot2的功能:

library(ggformula)
g <- gf_point(cty ~ hwy, data=mpg) %>% print()

答案 1 :(得分:1)

您可以使用package ggfun来完成此操作:

# devtools::install_github("moodymudskipper/ggfun")
library(tidyverse)
library(ggfun)

ggplot(mpg, aes(cty, hwy)) + 
  geom_point() +
  print