R ggplot - 将所有数据点添加到所有方面

mod*_*che 6 r facet ggplot2 facet-wrap

到目前为止我找不到合适的答案,这是关于R中ggplot2的简短问题:

data(mtcars)
ggplot(data=mtcars, aes(x=mpg, y=wt, fill=factor(cyl))) +
scale_fill_manual(values=c("red","orange","blue"))+
geom_point(size=2, pch=21)+
facet_grid(.~cyl)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这一切都很好,现在我想要每个方面的所有数据点(无论数字是多少)(例如,在点下方有一个平滑的灰色)?

谢谢,迈克尔

Kum*_*lam 6

使用@beetroot给出的链接,我能够做到这样的事情:

g1 <- ggplot(data=mtcars, aes(x=mpg, y=wt)) + 
  geom_point(data=mtcars[, c("mpg", "wt")], aes(x=mpg, y=wt), colour="grey") +
  geom_point(size=2, pch=21, aes(fill=factor(cyl))) + 
  scale_fill_manual(values=c("red","orange","blue")) + 
  facet_wrap(~cyl) 
Run Code Online (Sandbox Code Playgroud)

这产生了情节: 在此输入图像描述

希望这对你有所帮助.


ati*_*too 6

这里有一个简单的简化,使生活更轻松。您唯一需要做的就是从提供给背景geom_point()层的数据中删除构面变量。

library(tidyverse)
ggplot(data=mtcars, aes(x=mpg, y=wt)) + 
  geom_point(data=select(mtcars,-cyl), colour="grey") +
  geom_point(size=2, pch=21, aes(fill=factor(cyl))) + 
  scale_fill_manual(values=c("red","orange","blue")) + 
  facet_wrap(~cyl) 
Run Code Online (Sandbox Code Playgroud)