ggplot2画图——点图想要描边但是又需要去除边框

  在用ggplot2作点图时,点的颜色默认是由color参数控制的。如下所示:

library(ggplot2)
ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width))+
   geom_point(aes(color=Species),size=4)

 但偶尔想要让点的颜色由fill参数控制的时候就需要设置点的shape,所有shape如下所示:

   这里shape21~shaoe25的中间颜色是由fill参数控制,描边颜色由color参数控制。但是有些扭曲的人(比如我)会想到一些扭曲的要求——使用fill控制点的颜色然而需要去除边框。以前做的时候只能想到把边框调到最细(stroke=0),但是效果并不理想,如下图所示:

ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width))+
   geom_point(aes(fill=Species),shape=21,size=4,stroke=0)

 可以看到多少还是可以看到黑框,之前还尝试过设置不透明度来去除边框,如下所示:

ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width))+
   geom_point(aes(fill=Species),shape=21,size=4,stroke=0,alpha=0)

     这下连点都没了。。。直到今天突发奇想——有没有一种颜色自带透明度?简单检索之后发现rgb()函数除了红绿蓝三个色道参数以外还有第四个不透明度参数。用ggplot试一下能不能去除点的描边。

p1 <- ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width))+
   geom_point(aes(fill=Species),color=rgb(0,0,0),shape=21,size=4)
p2 <- ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width))+
   geom_point(aes(fill=Species),color=rgb(0,0,0,0),shape=21,size=4)
p1
p2
P1
P1               
P2                

     可以发现P1依然存在边框,而P2的边框已经消失不见了。大功告成!

————————————

时隔一个月更新一下,我发现其实只要写color=NA 就可以了,不需要用到rgb(0,0,0,0)。

参考:

R plot / ggplot2加透明度

ggplot2-散点图的边框与填充色问题

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值