ggplot高级绘图举例
2019-02-01 本文已影响78人
apricoter
一、cars包中的Salaries数据集
1.查看原数据结构
library(ggplot2)
library(car)
head(Salaries)
![](https://img.haomeiwen.com/i15866579/5475aeee59917401.png)
其中rank为学术等级,sex为性别,yrs.since.phd为获得博士学位的年数,yrs.service为工龄,salary为9个月的薪水。
2.查看薪水如何随学术等级变化
ggplot(Salaries,aes(x=salary,fill=rank))+geom_density()
![](https://img.haomeiwen.com/i15866579/bdad68422d628e2f.png)
数据有重叠,调整透明度
ggplot(Salaries,aes(x=salary,fill=rank))+geom_density(alpha=.3)
![](https://img.haomeiwen.com/i15866579/e495d7f10b406475.png)
3.查看博士学位毕业年数与薪水关系
ggplot(Salaries,aes(x=yrs.since.phd,y=salary,color=rank,shape=sex))+geom_point()
![](https://img.haomeiwen.com/i15866579/eaf43ee442196a21.png)
修改为刻面图
ggplot(Salaries,aes(x=yrs.since.phd,y=salary,color=rank,shape=sex))+geom_point()+facet_grid(.~sex)
![](https://img.haomeiwen.com/i15866579/9815387b54f79c23.png)
暂时忽略性别和学术等级,做非参数光滑曲线loess,即默认值smooth
ggplot(Salaries,aes(x=yrs.since.phd,y=salary))+geom_point()+geom_smooth()
![](https://img.haomeiwen.com/i15866579/4062f64d84333940.png)
显示不是线性的关系,则按性别拟合一个二次多项式回归
ggplot(Salaries,aes(x=yrs.since.phd,y=salary,linetype=sex,shape=sex,color=sex))+geom_point(size=2)+geom_smooth(method=lm,formula = y~poly(x,2),se=FALSE,size=1)
![](https://img.haomeiwen.com/i15866579/2cb6f098b858057b.png)
得出男性从0-30增加然后下降,女性一直上升,数据集中没有女性获得博士学位超过40年,男性大部分可以拿到很高的薪水。