美文网首页科研作图互联网科技数据科学与R语言
ggplot2学习笔记系列之利用ggplot2绘制散点图

ggplot2学习笔记系列之利用ggplot2绘制散点图

作者: taoyan | 来源:发表于2017-05-30 13:29 被阅读219次

    taoyan
    1 简介
    2 绘制简单的散点图
    2.1 shape参数修改图形的形状
    2.2 size参数修改点的大小
    2.3 color参数修改点的颜色
    3 绘制分组的散点图
    3.1 首先将数值型变量cyl转换为因子型变量
    3.2 分组变量赋值给颜色属性(变量赋值必须在aes里面)
    3.3 分组变量赋值给性状属性
    4 将连续变量映射给颜色、大小和形状等属性
    4.1 将连续性变量disp映射给颜色属性
    4.2 将连续性变量disp映射给大小属性
    5 重叠点的处理
    6 为散点图添加拟合曲线

    1 简介
    散点图通常用来刻画两个连续型变量之间的关系。绘制散点图时数据集中的每一个观测值都由散点图中的一个点来表示。利用包ggplot2可以绘制十分漂亮的散点图。 利用ggplot2绘图前先确保我们所使用的数据集是data.frame形式。ggplot2绘图利用映射将数据赋予给坐标轴上进而添加几何对象形成图形。绘图前先加载包ggplot2library(ggplot2)

    #Load packages
    library(ggplot2)#visualization
    

    加载完包之后,本文利用数据集mtcars来演示散点图绘制。 先查看数据集的前几行来了解mtcars数据集。

    #check data
    head(mtcars)
    

    2 绘制简单的散点图

    ggplot(data=mtcars, aes(x=wt, y=mpg)) + geom_point()
    

    2.1 shape参数修改图形的形状
    可选点图形形状:
    ggplot(data=mtcars, aes(x=wt, y=mpg)) +geom_point(shape=17)
    

    2.2 size参数修改点的大小

    ggplot(data = mtcars, aes(x=wt, y=mpg))+geom_point(size=5)
    

    2.3 color参数修改点的颜色

    ggplot(data=mtcars, aes(x=wt, y=mpg))+geom_point(color="red")
    

    3 绘制分组的散点图
    可将分组变量(因子或字符变量,可通过factor()强制性将非因子变量转为因子变量)赋值给颜色或性状属性,实现分组散点图的绘制。
    3.1 首先将数值型变量cyl转换为因子型变量
    mtcars$cyl <- factor(mtcars$cyl)
    

    3.2 分组变量赋值给颜色属性(变量赋值必须在aes里面)

    ggplot(data=mtcars, aes(x=wt, y=mpg, color=cyl))+geom_point(size=3)
    

    3.3 分组变量赋值给性状属性

    ggplot(data=mtcars, aes(x=wt, y=mpg, shape=cyl))+geom_point(size=3)
    

    如果对R语言默认的颜色或者形状不满意,可以通过scale_color_brewer()或者scale_color_manual()函数自定义点的颜色以及scale_shape_manual()函数自定义点的形状。 下面我们将分组变量cyl同时赋值给颜色和形状属性。
    ggplot(data=mtcars, aes(x=wt, y=mpg, color=cyl, shape= cyl))+
    geom_point(size=3)+ scale_color_brewer(palette = "Accent")+
    scale_shape_manual(values = c(2, 9, 16))#Accent是一调色板,可选点的形状见上
    

    4 将连续变量映射给颜色、大小和形状等属性
    4.1 将连续性变量disp映射给颜色属性

    ggplot(data=mtcars, aes(x=wt, y=mpg, color=disp))+geom_point(size=3)
    

    从图中可以发现值越大对应的颜色越浅,以下是通过人为设置色阶使值大小与颜色深浅保持一致

    ggplot(data=mtcars, aes(x=wt, y=mpg, color=disp))+
    geom_point(size=3)+ scale_color_gradient(low="lightblue", high="darkblue")
    

    4.2 将连续性变量disp映射给大小属性

    ggplot(data=mtcars, aes(x=wt, y=mpg, size=disp))+geom_point(color="red")
    

    5 重叠点的处理
    当数据量非常大时,会导致数据重叠点非常严重,可通过使用半透明的点避免。alpha参数控制点的透明度。下面利用数据集diamonds来演示。
    #check data
    head(diamonds)
    
    #未使用透明点处理
    ggplot(data=diamonds, aes(x=carat, y=price))+geom_point()
    
    #使用alpha参数调整点透明度
    ggplot(data=diamonds, aes(x=carat, y=price))+geom_point(alpha=0.1)
    

    6 为散点图添加拟合曲线

    #使用数据集mtcars
    ggplot(data=mtcars, aes(x=wt, y=mpg))+geom_point()+stat_smooth(method="lm")
    
    #也可以去除掉拟合曲线的置信区间
    ggplot(data=mtcars, aes(x=wt, y=mpg))+geom_point()+stat_smooth(method="lm", se=FALSE)
    
    #也可以针对不同类型的cyl来进行拟合
    ggplot(data=mtcars, aes(x=wt, y=mpg, color=cyl))+
    geom_point()+stat_smooth(method="lm")
    

    相关文章

      网友评论

        本文标题:ggplot2学习笔记系列之利用ggplot2绘制散点图

        本文链接:https://www.haomeiwen.com/subject/udkrfxtx.html