前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R数据科学|5.5.3内容介绍

R数据科学|5.5.3内容介绍

作者头像
庄闪闪
发布2021-04-09 11:24:10
1K0
发布2021-04-09 11:24:10
举报
文章被收录于专栏:庄闪闪的R语言手册

5.5.3 两个连续变量

对于两个连续变量间的相关变动的可视化表示有一下两种方法:

  1. 使用geom_point()画出散点图
  2. 使用分箱处理

使用geom_point()画出散点图

最简单的一种方法是:使用geom_point()画出散点图。你可以将相关变动看作点的模式。例如,你可以看到钻石的克拉数和价值之间存在一种指数关系:

代码语言:javascript
复制
 ggplot(data = diamonds) +
 geom_point(mapping = aes(x = carat, y = price))

存在问题:随着数据集规模的不断增加,散点图的用处越来越小,因为数据点开始出现过绘制,并堆积在一片黑色区域中(如上面的散点图所示)

解决方法:使用alpha图形属性添加透明度:

代码语言:javascript
复制
ggplot(data = diamonds) +
 geom_point(
 mapping = aes(x = carat, y = price),
 alpha = 1 / 100
 )

使用分箱处理

但是对于特别大的数据集使用透明度也不管用了,另一种解决方法是使用分箱

我们之前使用了geom_histogram()geom_freqpoly()函数(可参考5.3.1内容 )在一个维度上进行分箱。现在学习如何使用geom_bin2d()geom_hex()函数在两个维度上进行分箱。

两个连续变量同时分箱

  • geom_bin2d()创建长方形分箱
代码语言:javascript
复制
ggplot(data = smaller) +
 geom_bin2d(mapping = aes(x = carat, y = price))
  • geom_hex()创建六边形分箱
代码语言:javascript
复制
# install.packages("hexbin")
ggplot(data = smaller) +
 geom_hex(mapping = aes(x = carat, y = price))

对其中一个连续变量进行分箱

这里连续变量的作用就相当于分类变量。接下来就可以使用前面学过的对分类变量和连续变量的组合进行可视化的技术了,具体可见5.3.1内容

例如,对carat进行分箱,然后为每个组生成一个箱线图:

代码语言:javascript
复制
ggplot(data = smaller, mapping = aes(x = carat, y = price)) +
 geom_boxplot(mapping = aes(group = cut_width(carat, 0.1)))

以上示例使用了cut_width(x, width)函数将 x 变量分成等宽的分箱。

如果想要体现不同数量的观测值,可以使用参数varwidth = TRUE 让箱线图的宽度与观测数量成正比。

另一种方法是近似地显示每个分箱中的数据点的数量,此时可以使用cut_number()函数:

代码语言:javascript
复制
ggplot(data = smaller, mapping = aes(x = carat, y = price)) +
 geom_boxplot(mapping = aes(group = cut_number(carat, 20)))

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 庄闪闪的R语言手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 5.5.3 两个连续变量
    • 使用geom_point()画出散点图
      • 使用分箱处理
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档