ggplot2-入门2

1. 在图中添加平滑曲线

如果散点图中数据点太多,数据的实际趋势可能被掩盖,这时候九二一使用geom_smooth(),在图中添加一条平滑曲线

ggplot(mpg, aes(displ, hwy))+
geom_point()+
geom_smooth()

在散点图上绘制了一条平滑曲线,其中灰色部分表示逐点置信区间用以评估不确定性。如果不想绘制置信区间,可以输入geom_smooth(se=FALSE)

method是geom_smooth()的重要参数之一,提供了平滑曲线的多种拟合方式
method = "loess"是n较小时的默认选项,使用局部回归拟合,曲线的平滑程度由参数span控制,其取值范围从0(很不平滑)到1(很平滑)

ggplot(mpg, aes(displ, hwy))+
	geom_point() + geom_smooth(span=0.2)

ggplot(mpg, aes(displ, hwy))+
	geom_point() + geom_smooth(span=1)

Loess对于大数据并不十分适用,因此当n超过1000时将会默认采用另一种平滑算法

method="gam"可以调用mgcv包来拟合一个广义可加模型
需要先加载mgcv包,然后调用公式 formula = y ~ s(x) 或 y ~ s(x, bs = “cs”)(用于大量数据),这是数据量超过1000时ggplot2的默认选项

library(mgcv)
ggplot(mpg, aes(displ, hwy))+
	geom_point()+
	geom_smooth(method = "gam", formula = y ~ s(x))

method = "lm"拟合线性模型,默认进行线性拟合

ggplot(mpg, aes(displ, hwy))+
	geom_point()+
	geom_smooth(method = "lm")

method = “rlm” 与 lm()类似,但它拟合算法更稳健,因此结果对异常值不太敏感。这一方法是R包MASS的一部分,因此使用时需要先加载R包MASS

2. 箱线图和扰动点图

如果数据集中包含了分类变量和多个连续变量,那么可能需要了解连续变量在不同分类变量取值下的变化情况

ggplot(mpg, aes(drv, hwy))+
	geom_point()

由于车辆类别和耗油量取值均较少,图形重叠问题比较严重。大量数据点堆积致使数据分布不太明显,下面介绍3种工具来解决这个问题

  1. 扰动点图,geom_jitter(),在数据中加入一些随机噪声避免图形重叠
  2. 箱线图,geom_boxplot(),用若干统计量概括数据分布情况
  3. 小提琴图,geom_violin(),简要展示分布“密度”,突出数据分布密集的区域
ggplot(mpg, aes(drv, hwy)) + geom_jitter()
ggplot(mpg, aes(drv, hwy)) + geom_boxplot()
ggplot(mpg, aes(drv, hwy)) + geom_violin()

每种方法都有它的优势和补足
箱线图只用5个数字对分布进行概括,过于简略
扰动点图虽将所有的点都绘入图中却只适用于相对小的数据集
小提琴图展示信息最丰富,却依赖于分布密度的计算,这有时会很难解释

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值