当我绘制以下内容时:
library(ggplot2)
ggplot() +
geom_point(data=mtcars, mapping=aes(x=mpg, y=wt, col=factor(cyl)))
现在我想添加具有不同组和颜色的不同数据
library(ggplot2)
data = data.frame(x = rep(12, times=50), y = seq(1, 5, length.out = 50), c = c(rep(1, times=10),
rep(2, times=10),
rep(3, times=10),
rep(4, times=10),
rep(5, times=10)))
ggplot() +
geom_point(data=mtcars, mapping=aes(x=mpg, y=wt, col=factor(cyl))) +
geom_point(data=data, aes(x=x, y=y, col=factor(c)), inherit.aes = FALSE)
您不能将单个美学(在这种情况下为颜色)映射到同一图中的两组不同值。ggplot的解释中,唯一有效的办法你的命令:构建一个单一的色标,其中包括在所有的独特的价值观mtcars$cyl
和data$c
。
但是,我们可以通过将颜色映射到一组值并填充到另一组值来接近所需的值。我们可以使用pch = 21
,因为该点样式既有颜色又有填充。我们在一层中关闭点描边(颜色),然后在另一层中填充点:
ggplot() +
geom_point(data=mtcars, mapping=aes(x=mpg, y=wt, col=factor(cyl)), pch = 21) +
geom_point(data=data, aes(x=x, y=y, fill=factor(c)), pch = 21, color = '#00000000')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句