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

时间:2016-04-19 09:48:37

标签: r ggplot2 facet 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)

enter image description here

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

谢谢,迈克尔

2 个答案:

答案 0 :(得分: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) 

这会产生情节: enter image description here

希望这会对你有所帮助。

答案 1 :(得分:6)

这是一个简单的简化,使生活更轻松。您唯一需要做的就是从提供给后台geom_point()图层的数据中删除faceting变量。

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)