R 同一viz中的一个有抖动的盒形图和一个无抖动的盒形图

R 同一viz中的一个有抖动的盒形图和一个无抖动的盒形图,r,ggplot2,boxplot,jitter,R,Ggplot2,Boxplot,Jitter,我希望有一个viz和一个两个箱线图,但其中只有一个有抖动的数据点。我可以创建下面的viz,但希望“非jit”没有数据点。谢谢你的帮助 Amount = c(runif(20,1,100),5,25,50,75,90,(runif(20,1,100)),5,25,50,75,90) Level = c(rep(1,25),rep(2,25)) Description = c(rep("jit",20),rep("non-jit",5),rep("jit",20),rep("non-jit",5))

我希望有一个viz和一个两个箱线图,但其中只有一个有抖动的数据点。我可以创建下面的viz,但希望“非jit”没有数据点。谢谢你的帮助

Amount = c(runif(20,1,100),5,25,50,75,90,(runif(20,1,100)),5,25,50,75,90)
Level = c(rep(1,25),rep(2,25))
Description = c(rep("jit",20),rep("non-jit",5),rep("jit",20),rep("non-jit",5))

Jitter = data.frame(Level,Description,Amount)
names(Jitter) = c("Level", "Description", "Amount")
View(Jitter)

Jitter$Description = factor(Jitter$Description, levels = c("jit", "non-jit"))
Jitter$Level = factor(Jitter$Level, levels = c("1", "2"))

ggplot(Jitter, aes(x=Amount, y = Description))+
  geom_boxplot()+
  geom_point(position = position_jitter())+
  facet_grid(Level~.)

如果我理解您的意思,我们可以添加调整传递到geom_point的数据。默认情况下,geom_point继承您在ggplot中定义的aes。通过过滤数据,我们只需传递我们想要绘制的点

ggplot(Jitter, aes(x=Amount, y = Description))+
  geom_boxplot()+
  geom_point(data = Jitter %>% filter(Description != "non-jit"), 
             position = position_jitter())+
  facet_grid(Level~.)

如果我理解您的意思,我们可以添加调整传递到geom_point的数据。默认情况下,geom_point继承您在ggplot中定义的aes。通过过滤数据,我们只需传递我们想要绘制的点

ggplot(Jitter, aes(x=Amount, y = Description))+
  geom_boxplot()+
  geom_point(data = Jitter %>% filter(Description != "non-jit"), 
             position = position_jitter())+
  facet_grid(Level~.)

好极了很好的解决方案-谢谢你boucyball!好极了很好的解决方案-谢谢你boucyball!