美文网首页
我用R的ggplot2实现可视化,对数据为所欲为

我用R的ggplot2实现可视化,对数据为所欲为

作者: bffbb3a8a646 | 来源:发表于2019-04-19 10:13 被阅读0次

                                                                          作者丨阿左

                                                      来源丨医数思维云课堂(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的外观,这样可好?

相关文章

网友评论

      本文标题:我用R的ggplot2实现可视化,对数据为所欲为

      本文链接:https://www.haomeiwen.com/subject/wwofgqtx.html