这里写自定义目录标题
说明函数名及参数1、利用映射对散点图归类2、设置本图层点属性3、用透明度属性处理大数据4、多图层散点图叠加5、数据残缺报错
说明
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,940行
10列,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)