R语言与医学统计图形-【15】ggplot2几何对象之线图

wbingyang 2020-02-14

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')

R语言与医学统计图形-【15】ggplot2几何对象之线图

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

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')

R语言与医学统计图形-【15】ggplot2几何对象之线图
线条颜色

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))

R语言与医学统计图形-【15】ggplot2几何对象之线图

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)

R语言与医学统计图形-【15】ggplot2几何对象之线图

置信区间
有专门的几何对象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)

R语言与医学统计图形-【15】ggplot2几何对象之线图

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')

R语言与医学统计图形-【15】ggplot2几何对象之线图