ggplot2中的aes函数,啥时候要把变量放在aes函数中

总结自知乎@黄宝臣
作者:黄宝臣
链接:https://www.zhihu.com/question/24779017/answer/38750383

任何与数据向量顺序相关,需要逐个指定的参数都必须写在aes里(分组)

例子:
根据qsec来分组,表现为颜色

p <- ggplot(mtcars, aes(wt, mpg)) #<---- code 1
p + geom_point(aes(colour = qsec)) #<---- code 2

画图实现的过程

code 1: ggplot首先载入了这个mtcars的集合,然后指定给了mpg作为其x坐标位置,wt为y坐标位置。
code 2: 指定了qsec作为其染色的标准(分组),qsec为numeric变量,因此,应该选择连续型的标尺,而不是分组染色。然后开始绘制,读取mtcars m p g [ 1 ] 、 m t c a r s mpg[1]、mtcars mpg[1]mtcarswt[1],确定位置,然后为其染成mtcars$qsec[1]颜色;再绘制第二点。。。

不分组,整体为绿色

p + geom_point(color = "green") 

注意,绿色并没有放在aes函数中,这时绿色针对所有点
如果把green放在aes函数中

p + geom_point(aes(colour = "green"))

这时的图是这样的:
在这里插入图片描述
为何是粉色?

首先,数据的初始化跟上面那个例子是相同的。然后,因为color放到了aes里,于是ggplot开始搜索mtcars里面的向量了,发现没有叫"green"的,然后又找了global,也没有。于是,ggplot就开始把它认作了一个新的向量。

即这里,aes没有找到变量名green于是把它变成了一个只有一个长度的向量。因子水平为1

想统一整个图层时就放到aes外,想分成不同组调整,并且已经有一个与x、y长度一致的分组变量了,那就放到aes里。

  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值