相关变动描述多个变量之间的行为,查看相关变动的最好方式是将两个或多个变量间的关系以可视化的方式表现出来。
一 分类变量与连续变量
- 探索连续变量的分布,这种分布按照一个分类变量的值可以分为几个组。
geo_frepoly()的默认外观不太适合这种比较,因为高度是由计数给的。
ggplot(diamonds)+
geom_freqpoly(mapping=aes(x=price,color=cut),binwidth=500)
屏幕快照 2020-06-03 下午8.06.18.png
需要让比较变得容易,需要改变y轴的内容,不再显示计数,而是显示密度。密度是对计数的标准化,这样每个频率多边形下边的面积都是1
ggplot(diamonds)+
geom_freqpoly(mapping=aes(x=price,y=..density..,color=cut),binwidth=500)
#freqploy()要求x轴是连续型变量
屏幕快照 2020-06-03 下午8.17.08.png
2.按分类变量的分组显示连续变量分布的另一种方式是箱线图。
ggplot(diamonds)+
geom_boxplot(mapping=aes(x=price,y=cut))+
coord_flip() #翻转90度
屏幕快照 2020-06-03 下午8.36.57.png
mpg数据集,公路里程因汽车类别的不同会有怎样的变化
ggplot(mpg,mapping=aes(x=class,y=hwy))+
geom_boxplot()
为了更容易发现浴室,可以基于hwy值的中位数对class进行重新排序:
```{r}
ggplot(mpg)+
geom_boxplot(mapping=aes(x=reorder(class,hwy,FUN = median)))
#reorder()函数,第一个参数是分类变量,第二个参数通常是数值型变量,根据第二个参数的值对第一个变量进行排序
屏幕快照 2020-06-04 上午9.17.25.png
上图的y轴不太对,why??????
二 两个分类变量
1 想对两个分类变量间的相关变动进行可视化表示,需要计算出每个变量组合中的观测数量
ggplot(diamonds)+
geom_count(mapping=aes(x=cut,y=color))
屏幕快照 2020-06-04 下午4.05.29.png
2 计算变量组合中的观测数量的另一种方法是用dplyr
diamonds %>%
count(color,cut) %>%
ggplot(mapping=aes(x=color,y=cut))+
geom_tile(mapping=aes(fill=n))
#geom_tile()函数和填充图形属性进行可视化
屏幕快照 2020-06-04 下午4.17.24.png
三 两个连续变量
1 散点图
ggplot(diamonds)+
geom_point(mapping=aes(x=carat,y=price))
#可以看到钻石的克拉数和价值之间存在一种指数关系
alpha图形属性添加透明度可以解决黑点堆积
ggplot(diamonds)+
geom_point(mapping=aes(x=carat,y=price),alpha=1/100)
屏幕快照 2020-06-04 下午4.23.09.png
2.两个维度的分箱图
geom_bin2d()函数将坐标平面分为二维分箱,并使用一种填充颜色表示落入每个分箱的数据点。
ggplot(diamonds)+
geom_bin2d(mapping=aes(x=carat,y=price))
屏幕快照 2020-06-04 下午4.29.05.png