ggplot2学习之2——geom_point函数

说明

R语言的版本为4.0.2,IDE为Rstudio,版本为1.3.959。学习的主要内容是R官方文档当中给出的算法,对其中的英文注释做了自己理解基础上的翻译。

函数名及参数

# 散点图函数,函数参数很多,而且都有相应作用
# mapping:映射,将数据中的各个属性映射到坐标轴或者其它几何要素上
#    指定之后的映射会与默认映射混合显示在顶部图层,如果没有默认映射,则必须指定
# data:数据,定义本图层中使用的数据集,如为缺省值,则使用默认数据集
#    数据集的类型必须为数据框,否则会被强制转换为数据集
# stat:字符串形式的统计参数,确定用于该图层数据的统计学方法
# position:字符串形式的位置参数,确定位置(也可以是返回位置参数的函数)
# ...:其他传递给图层的参数,例如shape = 21, colour = "black", fill = "white", 
#    size = 5, stroke = 5,分别指定了点的形状、线条颜色、填充颜色、
#    填充大小、线条粗细
# na.rm:逻辑参数,真值关闭缺值报错
# show.legend:逻辑参数,是否显示该图层的图例,NA为默认
# inherit.aes:逻辑参数,是否叠加本图层和默认的几何要素,假值为覆盖而非叠加

library(ggplot2)
geom_point(
  mapping = NULL,
  data = NULL,
  stat = "identity",
  position = "identity",
  ...,
  na.rm = FALSE,
  show.legend = NA,
  inherit.aes = TRUE)

1、利用映射对散点图归类

在这里插入图片描述在这里插入图片描述
原始散点图将cyl映射到颜色
在这里插入图片描述在这里插入图片描述
将cyl映射到形状将qsec映射到大小形成泡泡图
# mtcars:R语言自带的数据包,wt、mpg为其中的两列数据

p <- ggplot(mtcars, aes(wt, mpg))
p + geom_point()

# 将cyl分别映射到颜色和形状两种几何要素上,进行分组
# factor():创建因子函数,此处将持续变量转变为不变的因子,
#    因为持续变量不能作为颜色参数和形状参数
# 将qsec映射到点的大小上,形成泡泡图

p + geom_point(aes(colour = factor(cyl)))
p + geom_point(aes(shape = factor(cyl)))
p + geom_point(aes(size = qsec))

2、设置本图层点属性

在这里插入图片描述在这里插入图片描述
设置点颜色和点大小设置各种属性
# 将本图层的几何要素设置成预定值,此处设置点颜色和点大小

ggplot(mtcars, aes(wt, mpg)) + geom_point(colour = "red", size = 3)

# 指定了点的形状、线条颜色、填充颜色、填充大小、线条粗细各属性

ggplot(mtcars, aes(wt, mpg)) +
  geom_point(shape = 21, colour = "black", fill = "white", 
  size = 5,stroke = 5)

3、用透明度属性处理大数据

在这里插入图片描述在这里插入图片描述在这里插入图片描述
1/10透明1/20透明1/100透明
# 设置透明度在数据量大的时候非常实用,容易看出数据分布
#    以下对于同样的数据,设置了三种透明度,生成三张图片
# diamonds:R语言自带的数据包,数据量非常大
#    53,94010列,carat,price为其中两列数据
# 不是程序错误,而是数据量太大,电脑需要时间处理,耐心等待

d <- ggplot(diamonds, aes(carat, price))
d + geom_point(alpha = 1/10)
d + geom_point(alpha = 1/20)
d + geom_point(alpha = 1/100)

4、多图层散点图叠加

在这里插入图片描述在这里插入图片描述
两层叠加三层叠加
# 可以自定义不同图层点的大小和形式,从而组合成形状有趣的点
# 首先在画布图层定义数据集mtcars,并将mpg, wt,cyl分别映射到
#    x轴,y轴,形状上
# 其次在上一层图层上将cyl映射到颜色上,并设置填充大小为4
# 最后在顶部图层设置点颜色和大小
# 由于图层叠加的缘故,会产生很好看的效果
# 第二张图与第一张的逻辑类似,只是多叠加了一层图层

p <- ggplot(mtcars, aes(mpg, wt, shape = factor(cyl)))
p + geom_point(aes(colour = factor(cyl)), size = 4) +
  geom_point(colour = "grey90", size = 1.5)
p + geom_point(colour = "black", size = 4.5) +
  geom_point(colour = "pink", size = 4) +
  geom_point(aes(shape = factor(cyl)))

5、数据残缺报错

缺少中间点数据:
在这里插入图片描述

# 当数据中间缺少某一点的数据时会报错,设置na.rm = TRUE关闭报错
# transform():数据框置换函数,修改、添加、删除数据框中的列
# ifelse():判断函数,参数1为真,执行参数2,否则执行参数3
# runif():随机数生成函数,生成均匀分布的随机数,可指定个数和生成区间
# runorm():随机数生成函数,生成正态分布的随机数,可指定个数、均值、标准差

mtcars2 <- transform(mtcars, mpg = ifelse(runif(32) < 0.2, NA, mpg))
ggplot(mtcars2, aes(wt, mpg)) + geom_point()
ggplot(mtcars2, aes(wt, mpg)) + geom_point(na.rm = TRUE)
  • 16
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值