zoukankan      html  css  js  c++  java
  • R语言与医学统计图形-【15】ggplot2几何对象之线图

    ggplot2绘图系统——几何对象之线图

    • 曲线:点连线、路径曲线、时间序列曲线、模型拟合曲线......
    • 直线:水平直线、垂直直线、斜线。

    1.曲线

    对象及其参数。

    #路径图
    geom_path(mapping = ,
              data = ,
              stat = 'identity',
              position = 'identity',
              lineend = 'butt', #线段两端样式,round/square
              linejoin = 'round', #线段交叉样式,mitre/bevel
              linemitre = 1,
              arrow = ,
              na.rm = FALSE,
              show.legend = NA,
              inherit.aes = TRUE)
    
    geom_line(mapping = ,
              data = ,
              stat = 'identity',
              position = 'identity',
              na.rm = F,
              show.legend = NA,
              inherit.aes = T)
    

    示例时间序列曲线。

    ggplot(economics,aes(date,unemploy))+
      geom_line(color='red')
    

    image.png

    点连线
    需要依靠图层叠加。先画点和先画线有细微的区别,即重叠的部分后一个会覆盖前一个。

    df <- data.frame(x=c(1:10),y=sample(10:30,10))
    ggplot(df,aes(x,y,))+geom_point(color='blue')+geom_line(color='red')
    ggplot(df,aes(x,y,))+geom_line(color='red')+geom_point(color='blue')
    

    image.png
    线条颜色

    dff <- data.frame(x=c(1:10),y=c(1:10))
    
    #连续型线条颜色映射,意义不大
    ggplot(dff,aes(x,y,color=x))+ 
      geom_line(linetype=1)+
      geom_point(color='blue')
    
    #离散型线条颜色映射
    ggplot(economics_long,aes(date,value01))+
      geom_line(aes(linetype=variable,color=variable))
    

    image.png

    2.平滑曲线

    参数:

    geom_smooth(mapping = ,
                data = ,
                stat = 'smooth',
                position = 'identity',
                method = 'auto', #曲线生成方法
                formula = y~x,
                se=TRUE, #是否显示95%可信区间
                na.rm = F,
                span=, #曲线平滑程度0-1,越小越平滑
                show.legend = NA,
                inherit.aes = T
                )
    

    method备选: lm/glm/gam/loess/rlm。一般样本量少于1000时,默认loess(样条回归);样本量大于1000时,默认gam(广义加性模型)。

    formula备选:y~log(x),或多项式回归y~ploy(x,2)

    a=ggplot(mpg,aes(displ,hwy))+
      geom_point()+geom_smooth(span=0.2)
    
    b=ggplot(mpg,aes(displ,hwy))+
      geom_point()+geom_smooth(span=0.8)
    
    c=ggplot(mpg,aes(displ,hwy))+
      geom_point()+geom_smooth(method='lm',color='red')#线性回归
    
    library(gridExtra) #图形组合
    gridExtra::grid.arrange(a,b,c,ncol=3)
    

    image.png

    置信区间
    有专门的几何对象geom_ribbon,即色带图。

    mydata <- data.frame(time=seq(2000,2016,1),
                         m_value=rnorm(17,20,5),
                         sd_value=runif(17,1,3))
    
    ggplot(mydata,aes(time,m_value))+
      #均值曲线
      geom_line(color='deeppink4',size=1)+
      #95%置信区间上限
      geom_line(aes(time,m_value+1.96*sd_value),color='black',linetype=2)+
      #95%置信区间下限
      geom_line(aes(time,m_value-1.96*sd_value),color='black',linetype=2)+
      #在两条置信曲线间添加阴影。
      geom_ribbon(aes(time,ymin=m_value-1.96*sd_value,ymax=m_value+1.96*sd_value),
                  fill='light green',alpha=0.3)
    

    image.png

    3.直线绘制

    函数及其主要参数。

    #斜线
    geom_abline(...,slope, intercept...) #斜率,截距
    
    #水平直线
    geom_hline(..., yintercept...)
    
    #垂直直线
    geom_vline(..., xintercept...)
    

    示例。

    ggplot(mpg,aes(displ,hwy))+geom_point()+
      geom_hline(yintercept = c(15,25,35),linetype=2,color='red')+
      geom_vline(xintercept = c(3,4.5,6),linetype=2,color='red')+
      geom_abline(slope = 6,intercept = 5,color='blue')
    

    image.png

  • 相关阅读:
    python 数据可视化(一)
    python unittest自动测试框架
    使用selenium抓取淘宝信息并存储mongodb
    python之re模块(正则表达式)
    [原] OpenGL ES 学习笔记 (二)
    [原] OpenGL ES 学习笔记 (一)
    [转] iOS开发同学的arm64汇编入门
    [转]ARM64 汇编
    [转]iOS高级调试&逆向技术-汇编寄存器调用
    [转] CGTime CMTimeRange CMTimeMapping 小结
  • 原文地址:https://www.cnblogs.com/jessepeng/p/12307744.html
Copyright © 2011-2022 走看看