使用ggplot2修改点子集的形状

foz*_*eat 14 r ggplot2

我试图绘制一个沿大量维度变化的大散点图.

这是我的首发情节:

 p <- ggplot(mtcars, aes(wt, mpg, shape=cyl, colour=gear, size=carb)) +
      geom_point()
Run Code Online (Sandbox Code Playgroud)

带有多个变量的样本图

使用mtcars数据集,我只是包括各种形状,颜色和大小.现在我要添加的是所有点的区别标记,碳水化合物== 8.例如,在这些点周围添加一个大的黑色圆圈.

p + geom_point() + geom_point(colour="black", shape=1, size=5)
Run Code Online (Sandbox Code Playgroud)

很接近因为它得到了我想要的圆圈,但所有的点都得到了圆圈,我想把它限制在一些点上.

我非常感谢对此问题的任何建议.

oeo*_*o4b 22

而不是最初将变量放在ggplot函数中,尝试为您添加的每个图层单独映射变量.

p <- ggplot(data = mtcars)+
geom_point(aes(wt, mpg, shape=as.factor(cyl), colour=gear, size=carb))+
geom_point(aes(wt[carb==8], mpg[carb==8]), colour="black", shape=1, size=7)  
Run Code Online (Sandbox Code Playgroud)

IMG

  • 好.就个人而言,我倾向于将原始数据的所需子集传递给geom,如`geom_point(data = subset(mtcars,carb == 8),aes(...))`,并给出OP的代码可能性可能值得指出. (6认同)