美文网首页编程学习ggplot2学习笔记r语言学习
可视化学习笔记(三):ggplot2:散点图

可视化学习笔记(三):ggplot2:散点图

作者: 100gle | 来源:发表于2018-02-03 16:24 被阅读102次

    1、简单散点图

    使用geom_point()函数即可绘制,并且在映射中可以使用以下映射参数:

    • shape:指定形状
    • colour:填充(需要注意的是,fill对point可能不起作用
    • size:修改大小

    2、样式修改

    2.1 颜色修改

    颜色的手动修改使用以下函数:

    scale_colour_manual()
    scale_colour_brewer()

    2.2 形状修改

    • 使用scale_shape_manual()函数可以对形状进行重新修改
    • 使用scale_size_area()函数可以修改点大小(面积)
    • 需要注意的是,含有映射shapesize时最好不要用来比较点

    3、图形重叠情况

    3.1设定透明度

    使用alpha=#参数来设定透明度,降低图形重叠情况

    3.2将数据分箱(bin),并用矩形/六边形表示

    • stat_bin2d()表示矩形分箱
    • stat_binhex()表示六边形分箱

    使用以上两个函数时,需要对颜色进行调整,因此用到scale_fill_gradient()函数

    scale_fill_gradient(low='', high='', breaks=, limits=)
    
    • lowhigh是用于指定最小和最大色阶
    • breaks是用于将填充颜色进行分割(cut)
    • limits是限定色阶的范围

    3.3添加随机扰动点

    当散点图中其中一个数据轴或两个数据轴都对应于离散型变量时,也会出现图形重叠的情况,因此可以给数据添加随机扰动点

    geom_jitter()
    

    4、添加回归拟合线

    4.1拟合直线

    使用geom_smooth()函数可以添加回归拟合直线

    • se参数控制置信区间,当se=F时,表示不绘制置信区间;默认绘制
    • level参数控制置信水平
    • linetypecoloursize三个参数用于直线进行样式调整
    • geom_smooth()函数默认使用loess方法(局部加权多项式回归)
    • 如果提前映射了colourshape参数,回归会出现分组回归的情况

    4.2logit回归曲线

    使用stat_smooth()可以设定回归参数

    • method用于指定回归方法
    • method.args=list()用于传递回归方法的其他参数给stat_smooth()
    • 如果想基于数据进行拟合外推,需要添加fullrang=T参数

    4.3对模型添加拟合直线

    可以在建立模型后使用predict()函数预测,然后通过geom_line函数来添加模型的拟合线:

    #建立模型
    model <- lm(heightIn~ ageYear + I(ageYear^2), data=heightweight)
    model
    summary(model)
    
    #设定预测数据
    xmin <- min(heightweight$ageYear)
    xmax <- max(heightweight$ageYear)
    predicted <- data.frame(ageYear=seq(xmin, xmax, length.out = 100))
    
    predicted$heightIn <- predict(model, predicted);predicted
    
    #绘图
    sp <- ggplot(heightweight, aes(x=ageYear, y=heightIn)) +
      geom_point(colour="grey40")
    sp + geom_line(data=predicted, size=1)
    

    5、添加文本注释

    使用annotate()函数来对图形进行注释添加

    annotate(geom, x=, y=, label="", parse=F)
    
    • geom是指定添加注释类型,如geom="text"表示添加文本注释
    • xy是用来指定注释的坐标
    • label用来添加注释内容
    • parse默认不调用数学表达式语法,当parse=T时会以数学表达式的形式表现注释

    6、添加标签

    • 可以使用annotate()函数来手动添加个别点的标签
    • 如果需要自动添加标签,则使用geom_text()函数
    geom_text(aes(label=), size=#, vjust=#, hjust=#)
    
    • 直接将变量映射到label,然后通过size来调整标签大小避免重合
    • 使用vjusthjust参数用于对标签位置进行调整;但如果需要自动做出调整,则在aes映射中对y-axis或x-axis加减一个单位

    7、绘制气泡图

    使用geom_point()函数和scale_size_area()函数组合即可绘制出气泡图;但实际上气泡图还是散点图

    library(gcookbook) #加载数据
    
    cdat <- subset(countries, Year==2009 &
         Name %in% c("Canada", "Ireland", "United Kingdom", "United States", "New Zealand", "Iceland", "Japan", "Luxembourg", "Netherlands", "Switzerland"))
    
    p <- ggplot(cdat, aes(x=healthexp, y=infmortality, size=GDP)) +
      geom_point(shape=21, colour="black", fill="cornsilk")
      
    # 将GDP映射给半径(scale_size_continuous的默认值)
    p
    # 将GDP映射给面积,得到略大的圆圈
    p + scale_size_area(max_size=15)
    

    相关文章

      网友评论

        本文标题:可视化学习笔记(三):ggplot2:散点图

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