美文网首页
散点图(包括添加边际图和地毯线)

散点图(包括添加边际图和地毯线)

作者: 余绕 | 来源:发表于2022-12-22 20:43 被阅读0次
    1. 散点图
    library(ggplot2)
    library(tidyverse)
    library(cowplot)
    #准备数据
    set.seed(1000)
    small_diamonds<-sample_n(diamonds,size=500)
    dim(small_diamonds)
    
    colnames(small_diamonds)
     [1] "carat"   "cut"     "color"   "clarity" "depth"   "table"   "price"   "x"       "y"       "z"      
    
    ggplot(data=small_diamonds,aes(x=carat,y=price))+
      geom_point(shape=21,size=4,aes(fill= cut))+geom_smooth()
    
    #绘图,加拟合曲线,其中method=lm 加拟合直线,不加method的画默认是拟合曲线
    p1<-ggplot(data=small_diamonds,aes(x=carat,y=price))+
      geom_point(shape=21,size=4,aes(fill= cut))+geom_smooth(method = "lm")
    
    
    #去掉拟合曲线的置信区间 se=F
    p2<-ggplot(data=small_diamonds,aes(x=carat,y=price))+
      geom_point(shape=21,size=4,aes(fill= cut))+geom_smooth(method = "lm",se=F)
    
    #不同分组都画拟合曲线 aes(group=cut,color=cut),
    p3<-ggplot(data=small_diamonds,aes(x=carat,y=price))+
      geom_point(shape=21,size=4,aes(fill= cut))+geom_smooth(aes(group=cut,color=cut),method = "lm",se=F)
    
    plot_grid(p1,p2,p3)
    
    image.png

    计算相关性

    > cor.test(small_diamonds$carat,small_diamonds$price,method = "pearson")
    
        Pearson's product-moment correlation
    
    data:  small_diamonds$carat and small_diamonds$price
    t = 59.696, df = 498, p-value < 2.2e-16
    alternative hypothesis: true correlation is not equal to 0
    95 percent confidence interval:
     0.9249769 0.9466265
    sample estimates:
          cor 
    0.9366908 
    

    添加注释 annotate('text',x=2.5,y=20,label="r = 0.91; pvalue = 2.2e-16")

     ggplot(data=small_diamonds,aes(x=carat,y=price))+theme_bw()+
      geom_point(shape=21,size=4,aes(fill= cut))+geom_smooth(method = "lm",se=F)+
      annotate('text',x=2.5,y=20,label="r = 0.91; pvalue = 2.2e-16")+
      theme(legend.position = c(0.1,0.83))
    
    image.png

    添加边际图

    1. 安装ggextra

    install.packages("ggextra")
    library(ggextra)
    p3 <- ggplot(data=small_diamonds,aes(x=carat,y=price))+theme_bw()+
      geom_point(shape=21,size=4,aes(fill= cut))+geom_smooth(aes(group=cut,color=cut),method = "lm",se=F)+
      annotate('text',x=2.5,y=20,label="r = 0.91; pvalue = 2.2e-16")+
      theme(legend.position = c(0.1,0.83))
    
    ggExtra::ggMarginal(
      p = p3,
      type = 'density',
      margins = 'both',
      size = 5,
      colour = 'black',
      fill = 'gray'
    

    2. 选择代码块, 然后选择add in里面的 ggExtra插件

    image.png
    image.png

    3. 添加边际图

    image.png

    添加地毯线

    ggplot(data=small_diamonds,aes(x=carat,y=price))+theme_bw()+
      geom_point(shape=21,size=4,aes(fill= cut))+geom_smooth(aes(group=cut,color=cut),method = "lm",se=F)+
      annotate('text',x=2.5,y=20,label="r = 0.91; pvalue = 2.2e-16")+
      theme(legend.position = c(0.1,0.83))+
      geom_rug(aes(color=cut),length = unit(3,"mm"))
    
    image.png

    相关文章

      网友评论

          本文标题:散点图(包括添加边际图和地毯线)

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