来自一位儿童的礼物(ggplot2 02)

分享一张在网上找到的“小太阳”,我觉得还挺萌的

01

今天是儿童节,我们先来玩个游戏,看看能不能找出一下几张图的区别:


01


02



03


04



05


06

02

木有错,上一篇文章,我们已经简单得画了几幅散点图,你或许会有疑问,qplot既然是quick plot的简写,那为什么只能画散点图呢,naive!

其实我们如果想要画曲线也是用这个函数的,只不过默认的参数是绘制散点图。现在我们想要画曲线图该怎么办呢?我们是要做什么?改变几何形状嘛!所以这个参数的名字就叫做geom。那么曲线就是用smooth来表示喽!

看一个例子:

qplot(carat,price,data=dsmall,geom =c("point","smooth"))#这条代码的意思是在图上同时画出散点图和曲线图。得到的图形其实就是图1:


01

有没有注意到,曲线的旁边还有一定宽度的阴影区域,这代表了曲线的标准误,当然如果你不想画它,只需要加上短短的se=F就可以了,如下。

qplot(carat,price,data=dsmall,geom =c("point","smooth"),se=F)


02

美腻如你一定注意到我们好像一直都没有输入一个重要的参数诶,那就是我们是用什么方法来拟合数据的呢!其实当我们没有输入的时候我们使用的是一种loess的默认方法,这是一种局部回归的方法。当然如果想要改变回归方法只需要设置method这个参数。比如想要来个线性的:

qplot(carat,price,data=dsmall,geom =c("point","smooth"),method="lm")#嗯,没错lm就代表线性回归


03

假如你想设置成一个n次多项式来拟合呢!不如试一个10次的。

qplot(carat,price,data=dsmall,geom =c("point","smooth"),method="lm",formula=y~poly(x,10))


04

这个误差好像有点大,我想根据数据决定多项式的次数应该比较好,那不如试试这个:

qplot(carat,price,data=dsmall,geom =c("point","smooth"),method="gam",formula=y~s(x))#这种回归方法叫gam,记住它吧!



05

当你遇到大量的数据的时候,gam也是一个不错的选择哦!不过你要稍微改一下公式:

qplot(carat,price,data=dsmall,geom =c("point","smooth"),method="gam",formula=y~s(x,bs="cs"))


06

03

ok就酱!今天就是一些根据数据绘制合适的曲线图的方法喽!等等!今天儿童节!我要粗去玩啦!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容