作者丨阿左
来源丨医数思维云课堂(ID:Datamedi)
上次小编带大家学习了ggplot2的相关内容,今天我们继续深入学习一下,跟进我的步伐,不要掉队哟!
试想一下,如果组在图中并排出现,而不是重叠为单一的图形,关系是不是会更加清晰。那怎么做呢?ggplot2包中有你要的答案。我们可以使用facet_wrap()函数和facet_grid()函数创建网格图形,网格图形也就是俗称的刻面图。我们用合唱的例子来创建一个刻面图吧。
install.packages("ggplot2")
library(ggplot2)
install.packages("car")
library(car)
data(singer,package="lattice")
ggplot(singer,aes(x=height))+geom_histogram()+facet_wrap(~voice.part,nrow=4)
看一下效果图:
从图形上,可以得到各声部歌手身高的分布,将八个分布分为并排的小图可以方便比较。问题来啦,我们学过分组了,那如何创建一个包含刻面和分组的图呢?
ggplot(Salaries,aes(x=yrs.since.phd,y=salary,color=rank,shape=rank))+geom_point()+facet_grid(.~sex)
是不是很简单,图形可能更刺激。
怎么样?那加大一点儿难度吧,我们要展示singer数据集中每个声部成员的身高分布,并利用核密度图水平排列,给每个声部配不同的颜色,具体操作如下:
ggplot(singer,aes(x=height,fill=voice.part))+geom_density()+facet_grid(voice.part~.)
是不是出乎意料的简单,哈哈,代码就是这么任性。下面我们讨论一下如何添加光滑曲线吧。
图形显示了经验与薪水之间不是线性关系,还加上了95%的置信区间,操作很简单:
ggplot(data=Salaries,aes(x=yrs.since.phd,y=salary))+geom_smooth()+geom_point()
注意,我们用的是Salaries数据集啊。
那如果我们想按性别拟合一个二次多项式回归呢?
ggplot(data=Salaries,aes(x=yrs.since.phd,y=salary,linetype=sex,shape=sex,color=sex))+
geom_smooth(method=lm,formula=y~poly(x,2),se=FALSE,size=1)+geom_point(size=2)
是不是很简单,所有的几何函数的选项是不是都不陌生?那看一下效果图吧。
这么简单,大家一定要好好操作哟,ggplot2可视化的内容就讲到这里。下次我们见面,小编带大家一起修改ggplot2的外观,这样可好?