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)

猜你喜欢

转载自blog.csdn.net/qq_42318112/article/details/107051656