此博客作为自己的学习笔记,同时与大家交流分享!
Getting Started with ggplot2
1.几何对象(Geometric object)
ggplot2能够绘制各类几何对象,几乎任何一种图形类型都可以,可谓集百家之长于一身;但不仅仅于此,几何对象的使用可以叠加,也就是一张图可以画多个图层,比如在散点图上拟合平滑曲线,功能十分强大,以下是几种常见的几何类型绘图命令:
geom_point()
:绘制散点图geom_smooth()
:拟合一条平滑曲线(也可直线),并显示标准误差(置信区间)geom_boxplot()
:绘制箱线图geom_histogram()
:绘制直方图geom_bar()
:绘制条形图geom_path()
:在各个数据点之间连线(路径图)
想要了解几何对象都有哪些请单击这里
下面我们来用
qqplot()
函数绘制 ggplot2学习笔记1:从qplot() 开始中用qplot()
绘制的图像
2.散点图添加平滑曲线
利用数据集diamonds
绘制一幅钻石价格(price)与钻石质量(carat)的散点图,由于数据比较多噪点较大,不容易判断数据变化的趋势,此时可以通过geom_smooth()
添加一条平滑曲线判断趋势:
#qplot()
qplot(carat, price, data = diamonds, geom = c("point", "smooth"))
#ggplot()
ggplot(diamonds,aes(carat, price)) +
geom_point() +
geom_smooth()
生成图片:
图1:带有平滑曲线的散点图1
图中灰色带为置信带,是默认显示,如果不需要可以通过参数geom_smooth(se=FALSE)
取消置信带
通过参数method
可以选择不同的平滑器:
- 当n<=1000时,系统默认
method = "loess"
,使用公式formula = y ~ s(x)
,参数span控制曲线的平滑程度,范围0~1。脚本如下:
set.seed(1410) #让样本可重复
dsmall <- diamonds[sample(nrow(diamonds), 100), ] #随机选出100条观测
dsmall #由于点太多会看不出参数span的效果,故生成数据集dsmall
#qplot()
qplot(carat, price, data = dsmall, geom = c("point", "smooth"), span = 0.2)
#ggplot()
ggplot(dsmall, aes(carat, price)) +
geom_point() +
geom_smooth(span = 0.2)
ggplot(dsmall, aes(carat, price)) +
geom_point() +
geom_smooth(span = 1) #参数span控制平滑程度
生成图片:
图2:带有平滑曲线的散点2
- 当n>1000时,系统默认
method = "gam"
,使用时需要调用mgcv包来拟合广义可加模型,使用公式formula = y ~ s(x, bs = "cs")
现在调用mgcv包来拟合广义可加模型,脚本如下:
library(mgcv) #加载包
#qplot()
qplot(carat,<