R 多变量数据预处理_R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)...

a9c4e4b93238351f91f84a5fb0b4fd20.png

作者:穆晨   

 来源:https://www.cnblogs.com/muchen/p/5310732.html

阅读目录

  • 数据分布图简介

  • 绘制基本直方图

  • 基于分组的直方图

  • 绘制密度曲线

  • 绘制基本箱线图

  • 往箱线图添加槽口和均值

  • 绘制2D等高线

  • 绘制2D密度图

数据分布图简介

        中医上讲看病四诊法为:望闻问切。而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样;闻:仔细分析数据是否合理;问:针对前两步工作搜集到的问题与业务方交流;切:结合业务方反馈的结果和项目需求进行数据分析。

        "望"的方法可以认为就是制作数据可视化图表的过程,而数据分布图无疑是非常能反映数据特征(用户症状)的。R语言提供了多种图表对数据分布进行描述,本文接下来将逐一讲解。

绘制基本直方图

        本例选用如下测试集:

7effdfbd59fe0350ca6f0081963d6953.png

        直方图的横轴为绑定变量区间分隔的取值范围,纵轴则表示变量在不同变量区间上的频数。绘制时只需将基函数的美学特征集中配置好需要分析的变量,然后创建新的直方图图层即可。R语言示例代码如下:
# 基函数

运行结果:

b5a492a6adcd8dd64a8a75cd08a99683.png

基于分组的直方图

        本例选用如下测试集:

fdc39f619009c0ea74e8a5838275256a.png

        直方图的分组图和本系列前面一些博文中讲的一些分组图不同,它不能进行水平方向的堆积 - 这样看不出频数变化趋势;也不能进行垂直方向的堆积 - 这样同样看不出趋势。这里采用一种新的堆积方法:重叠堆积,R语言实现代码如下:

# 预处理:将smoke变量转换为因子类型

运行结果:

8a75fe5e7509abc9be35ac70b6f54d98.png

        也可以采用分面的方法,R语言实现代码如下:

# 预处理1:将smoke变量转换为因子类型

        运行结果:

8a65645f91589aacad9d744969bce497.png

绘制密度曲线

        本例选用如下测试集:

7effdfbd59fe0350ca6f0081963d6953.png

        密度曲线表达的意思和直方图很相似,因此密度曲线的绘制方法和直方图也几乎是相同的。区别仅在于密度曲线的横轴要绑定到连续型变量,另外绘制函数的名字不同。R语言示例代码如下:

# 预处理:将smoke变量转换为因子类型

        运行结果:

3942f28c7a72d117cb5bf12c90f0cb19.png

绘制基本箱线图

        本例选用如下测试集:

fdc39f619009c0ea74e8a5838275256a.png

        箱线图是一种常用数据分布图,下图表示了这种图中各元素的意义:

4099adbfe6c6a7a1dd67f5612dd8ad6b.png

        绘制方法是在基函数中将变量分组绑定到横轴,变量本身绑定到纵轴。此外,为了美观也可以将分组绑定到fill变量并设置调色板。R语言示例代码如下:

# 基函数ggplot(birthwt, aes(x = factor(race), y = bwt, fill = factor(race))) +  # 箱线图函数  geom_boxplot() +  # 颜色标尺  scale_fill_brewer(palette = "Pastel2")

        运行结果:

be197ea62b87833e9e3054597234aa65.png

往箱线图添加槽口和均值

        在上一节绘制的基本箱线图之上,还能进一步绘制以展示更多信息。

        其中最常见的是为箱子添加槽口,它能更清晰的表示中位数的位置。R语言实现代码如下:

# 基函数

        运行结果:

f7329c1f3e2f3c0771e90ca5329c6fa4.png

        通过stat_summary()函数,还可以在箱线图中标记均值点。R语言实现代码如下:

# 基函数

        运行结果:

1c7d839555eb8b83c3eba80fa101f7f5.png

绘制2D等高线

        本例选用如下测试集:

7effdfbd59fe0350ca6f0081963d6953.png

        绘制2D等高线主要是调用stat_density()函数。这个函数会给出一个基于数据的二维核密度估计,然后我们可基于这个估计值来判断各样本点的"等高"性。接下来首先给出各数据点及等高线的绘制方法,R语言实现代码如下:

# 基函数

        运行结果:

9807a211f522420cbcfd55b75696baa8.png        也可以通过设置密度函数美学特征集中的colour参数来给不同密度的等高线着色,R语言实现代码如下:

# 基函数

        运行结果:

529b927f3e3156474323d090f3b4cfb2.png

绘制2D密度图

        本例选用如下测试集:

7effdfbd59fe0350ca6f0081963d6953.png

        等高线图也是密度图的一种,因此绘制密度图和等高线图用的是同一个函数:stat_density(),只是它们传入的参数不同。首先绘制经典栅格密度图,R语言实现代码如下:

# 基函数

        运行结果:

5f86120e33a64e8dbd3b9a0b2700c11c.png

        也可以将密度变量映射到透明度来渲染,R语言实现代码如下:

x = eruptions, 

        运行结果:

91621402b62d04b64d41bb939b38c0c0.png

猜你喜欢

  • 11种概率分布,你了解几个?

  • 贝叶斯定理的通俗理解

  • R语言资源整理——史上最全

  • R语言简单实现决策树算法

90f6bc3234c1e31a78600a88ca3c4622.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值