直到现在我找不到合适的答案,这是关于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)
这一切都很好,现在我想要每个方面的所有数据点(无论数字是多少)(例如在点下方有一个平滑的灰色)?
谢谢,迈克尔
答案 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)
希望这会对你有所帮助。
答案 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)