在ggplot图层中引用管道数据集以进行子集化

时间:2017-06-29 11:18:18

标签: r ggplot2 dplyr magrittr

尝试找到一种方法来引用不同ggplot2 geom图层的数据集的不同部分,而不必先在全局环境中保存数据集。

非工作解决方案。

read_excel("Book1.xlsx",sheet = "Sheet2") %>% 
  ggplot(aes(x,y)) +
  geom_col() +
  geom_point(data=subset($ID == "1"),colour="red")

上面似乎不起作用,因为我没有以R可以识别它的方式引用管道(magrittr)数据集。我搜索过,但我能看到的唯一解决方案是基于我首先在全球环境中保存数据集的解决方案

Ex工作解决方案,首先保存数据集。

df <- read_excel("Book1.xlsx",sheet = "Sheet2")

  ggplot(df,aes(x,y)) +
  geom_col() +
  geom_point(data=subset(df,ID == "1"),colour="red")

1 个答案:

答案 0 :(得分:1)

您可以尝试使用dplyr

library(dplyr)
library(ggplot2)

read_excel("Book1.xlsx",sheet = "Sheet2") %>% 
  ggplot(aes(x, y)) +
  geom_col() +
  geom_point(data = . %>% filter(ID == "1"), colour = "red")