R 如何在ggplot中基于两个字符变量进行子集划分?

R 如何在ggplot中基于两个字符变量进行子集划分?,r,ggplot2,dplyr,tidyr,R,Ggplot2,Dplyr,Tidyr,我试图根据两个字符变量:model和letter在ggplot中对数据进行子集。我想把字母“a”的“m1”子集。在原始数据中,我有多行,其中有“m1”和“a”,但下面只是一个小的可复制示例。有人能指导我如何在ggplot命令中对其进行子集划分吗 model value letter m1 5 a m2 11 b m3 2 c m1 4 d m2 22 e m3

我试图根据两个字符变量:model和letter在ggplot中对数据进行子集。我想把字母“a”的“m1”子集。在原始数据中,我有多行,其中有“m1”和“a”,但下面只是一个小的可复制示例。有人能指导我如何在ggplot命令中对其进行子集划分吗

model   value   letter
m1        5       a
m2        11      b
m3        2       c
m1        4       d
m2        22      e
m3        6       f

 structure(list(model = structure(c("m1", "m2", "m3", "m1", "m2", 
"m3"), format.stata = "%9s"), value = structure(c(5, 11, 2, 4, 
22, 6), format.stata = "%9.0g"), letter = structure(c("a", "b", 
"c", "d", "e", "f"), format.stata = "%9s")), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame"))

我们可以通过
filter
进行分组,这可以作为
ggplot

library(dplyr)
library(ggplot2)
df1 %>% 
    group_by(model) %>%
    filter('a' %in% letter)  %>%
    ggplot(aes(x = letter, y = value)) +
       geom_col()
或者,如果它只是'm1'和'a',请立即执行
过滤器

df1 %>%
    filter(model == 'm1', letter == 'a') %>%
     ggplot(aes(x = letter, y = value)) +
       geom_col()
这行吗

ggplot(subset(df,model=='m1' & letter=='a'),aes(x=letter,y=value))+
  geom_point()
说明:

ggplot2
中,
data
参数允许使用其他函数,如
subset()