其他
R数据科学|5.5.1 内容介绍
5.5.1 相关变动
如果变动描述的是一个变量内部的行为,那么相关变动描述的就是多个变量之间的行为。相关变动是两个或多个变量以相关的方式共同变化所表现出的趋势。查看相关变动的最好 方式是将两个或多个变量间的关系以可视化的方式表现出来。如何进行这种可视化表示同 样取决于相关变量的类型。
5.5.1 分类变量与连续变量
我们经常需要探索连续变量的分布,按分类变量的分组显示连续变量分布的常用的两种方式是:
改变 y 轴的显示内容,不再显示计数,而是显示密度。密度是对计数的标准化,这样每个频率多边形下边的面积都是 1:
data = diamonds,
mapping = aes(x = price, y = ..density..)
) +
geom_freqpoly(mapping = aes(color = cut), binwidth = 500)
使用箱线图。箱线图是对变量值分布的一种简单可视化表示,每张箱线图都包括以下内容:
一个长方形箱子,下面的边表示分布的第 25 个百分位数,上面的边表示分布的第 75 个百分位数,上下两边的距离称为四分位距。箱子的中部有一条横线,表示分布的中位数,也就是分布的第 50 个百分位数。这三条线可以表示分布的分散情况,还可以帮助我们明确数据是关于中位数对称的,还是偏向某一侧。 圆点表示落在箱子上下两边 1.5 倍四分位距外的观测,这些离群点就是异常值,因此需要单独绘出。 从箱子上下两边延伸出的直线(或称为须)可以到达分布中最远的非离群点处。
ggplot(data = mpg, mapping = aes(x = class, y = hwy)) +
geom_boxplot()
例如,我们看一下 mpg 数据集中的 class 变量。你可能很想知道公路里程因汽车类别的不同会有怎样的变化,可以基于 hwy 值的中位数对 class 进行重新排序:
ggplot(data = mpg, mapping = aes(x = class, y = hwy)) +
geom_boxplot(mapping = aes(
x = reorder(class, hwy, FUN = median),
y = hwy
))
如果变量名很长,那么将图形旋转 90 度效果会更好一些。你可以通过coord_flip()
函数:
ggplot(data = mpg) +
geom_boxplot(
mapping = aes(
x = reorder(class, hwy, FUN = median),
y = hwy
)
) +
coord_flip()
nycflights13::flights %>%
mutate(
cancelled = is.na(dep_time),
sched_hour = sched_dep_time %/% 100,
sched_min = sched_dep_time %% 100,
sched_dep_time = sched_hour + sched_min / 60
) %>%
ggplot(mapping = aes(sched_dep_time)) +
geom_freqpoly(
mapping = aes(color = cancelled),
binwidth = 1/4
)
往期推荐