ggplot和dplyr过滤器参考

时间:2018-10-08 17:12:48

标签: r ggplot2 dplyr

这是我的代码:

mtcars %>% filter(cyl == 4) %>%
  ggplot(., aes(mpg, hp, color=hp)) +
  geom_point() +
  scale_color_gradient(low = "darkorange2", high = "darkred",
                       breaks=c(min(mtcars$hp), max(mtcars$hp)), 
                       labels=c("Min","Max"))

我想做的是,在我事先调用的过滤器中的scale_color_gradient函数中包含中断。我知道.$hp在base R中有效,并且仅在dplyr中使用变量名,但是在这种情况下如何使用?

1 个答案:

答案 0 :(得分:2)

您可以将所有绘图代码放在大括号中,以将“正确的”对象保留在.中。另外,如果要从最小值到最大值,可以使用range()。例如

mtcars %>% filter(cyl == 4) %>%
  {ggplot(., aes(mpg, hp, color=hp)) +
  geom_point() +
  scale_color_gradient(low = "darkorange2", high = "darkred",
                       breaks=range(.$hp), 
                       labels=c("Min","Max"))}