ggplot2学习之2——geom

    技术2022-07-10  91

    这里写自定义目录标题

    说明函数名及参数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,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)
    Processed: 0.015, SQL: 9