ggplot2-入门3

1. 直方图和频数多边图

直方图和频数多边图可以展示单个变量的分布,相对于箱线图,它们提供更多数据分布的信息,但同时占用更多内存

ggplot(mpg, aes(hwy)) + geom_histogram()
ggplot(mpg, aes(hwy)) + geom_freqpoly()

直方图和频数多边图工作原理相同:先将数据汇总,再计算在每一个水平下观测的数量。唯一的区别在于展示方式:直方图使用条形,而频数多边图使用线形

参数binwidth用以调整组距(如果不需要均匀组距可以修改breaks参数)。试验调整组距非常重要,数据默认会被分为30组,但是这个默认值一般时不合适的,所以需要自己多次调试

ggplot(mpg, aes(hwy)) +
	geom_freqpoly(binwidth = 2.5)
ggplot(mpg, aes(hwy)) +
	geom_freqpoly(binwidth = 1)

geom_density()绘制的密度曲线图与频数多边图相似。但是一般不推荐使用密度曲线图,因为密度曲线图比较难理解,而且密度曲线有一些隐含的假设,例如曲线应该是无界、连续且平滑的,但是这些假设不一定适用于真实数据

为了展示数据中不同自己的分布,可以将分类变量映射为填充色(用于geom_histogram())或颜色(用于geom_freqpoly()),这样更便于感受各子集分布的区别

ggplot(mpg, aes(displ, color = drv)) +
	geom_freqpoly(binwidth = 0.5)
ggplot(mpg, aes(displ, fill = drv)) +
	geom_histogram(binwidth = 0.5) +
	facet_wrap(~drv, ncol = 1)

2. 条形图

离散变量情形下,条形图和直方图相似,通过geom_bar()绘制

ggplot(mpg, aes(manufacturer)) + geom_bar()

条形图有时候可能比较难理解,因为一般把两种截然不同的图像统称为条形图
上图所使用的数据还没经过处理,因此每个观测值都会对应着其分组条形的一个单位高度
而另一种条形图已经过预处理,如下图,已知三种药品和它们的平均疗效

drugs <- data.frame(
	drugs = c("a", "b", "c"), effect = c(4.2, 9.7, 6.1))

处理这类数据,需要修改geom_bar()中的默认设置,不必进行分类计数

不过,可能用geom_point()会更好,因为它占用更少内存,而且不要求y轴包括0

ggplot(drugs, aes(drugs, effect)) + geom_bar(stat = "identity")
ggplot(drugs, aes(drugs, effect)) + geom_point()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值