wbingyang 2020-02-14
直线:水平直线、垂直直线、斜线。
#路径图 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')
点连线
需要依靠图层叠加。先画点和先画线有细微的区别,即重叠的部分后一个会覆盖前一个。
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')
线条颜色
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))
参数:
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)
置信区间
有专门的几何对象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)
函数及其主要参数。
#斜线 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')