R语言 树干和叶子图
茎叶图 是一种显示某些类别的数值可能出现的频率的技术。它基本上是一种以图形格式表示定量数据的方法。与直方图不同的是,茎叶图保留了原始数据项的两个有效数字。数据是按顺序排列的,这就便于转向无参数统计和基于顺序的推理。让我们了解这种绘图技术是如何工作的。
例子
在世界肥胖日,假设在一所学校,一位老师决定测量她认为可能有肥胖症的任何10名学生的体重。所以她记录了10个学生的体重,如下所示。
54, 43, 67, 76, 45, 59, 66, 78, 80, 92.
现在,这些记录上的茎叶图将是。
4 | 3 5
5 | 4 9
6 | 6 7
7 | 6 8
8 | 0
9 | 2
这里的记录是根据其最重要的数字来排列的。茎是图表的左边,右边是叶子。为了增加可读性,有时交替的行可以和它紧邻的行合并。如果出现无限值或缺失的数字,它们将被丢弃。
R语言中的茎叶图
在R语言中,任何定量变量的 茎叶图 (也被称为 茎叶图 ),例如x,是一个文本图,用于按照最重要的数字顺序对数据项进行分类。之所以称为茎叶图,是因为该图是以表格的形式给出的,每个数字值或数据项都被分成 茎 (即第一位数)和 叶 (即最后一位数)。例如,假设输入的数据是94。那么9将是茎,4将是叶。
语法: stem(number, scale = 1, width = 80, atom = 1e-08)
参数:
number : 我们要绘制茎叶图的数据[可以是数字向量或数字向量的列表]
scale : 我们要用于绘图的比例
width : 我们绘图所需的宽度[默认是80]
atom : 容差
在R中创建一个茎叶图
在RStudio中有许多保留的数据集。这里让我们使用 ChickWeight 数据集来考虑重量。首先,让我们看看如何通过使用stem()以更简单的方式使用茎和叶图。
例子
# R program to illustrate
# Stem and Leaf Plot
# using stem()
stem(ChickWeight$weight)
输出
The decimal point is 1 digit(s) to the right of the |
2 | 599999999
4 | 00000111111111111111111112222222222222223333456678888888899999999999+38
6 | 00111111122222222333334444455555666677777888888900111111222222333334+8
8 | 00112223344444455555566777788999990001223333566666788888889
10 | 0000111122233333334566667778889901122223445555667789
12 | 00002223333344445555667788890113444555566788889
14 | 11123444455556666677788890011234444555666777777789
16 | 00002233334444466788990000134445555789
18 | 12244444555677782225677778889999
20 | 0123444555557900245578
22 | 0012357701123344556788
24 | 08001699
26 | 12344569259
28 | 01780145
30 | 355798
32 | 12712
34 | 1
36 | 13
解释:
这里$符号在命令中被用来从所用的列表中提取数据。stem()命令提取数字数据并将其分成两部分,即茎和叶。左边显示最重要的数字,而最后一个数字则显示在右边。为了提高可读性,具有相同干值的数字被合并在一起。
使用比例参数
现在,让我们来看看 重新缩放 后的相同茎叶图。为了重新调整图的比例,我们需要在 stem() 函数中使用 比例 参数。
例子
# R program to illustrate
# Stem and Leaf Plot
# Drawing Stem and Leaf Plot after rescaling
stem(ChickWeight$weight, scale = 5)
输出
The decimal point is 1 digit(s) to the right of the |
3 | 599999999
4 | 000001111111111111111111122222222222222233334
4 | 5667888888889999999999999
5 | 00000011111111222233333444
5 | 5555566667778888899999
6 | 001111111222222223333344444
6 | 555556666777778888889
7 | 001111112222223333344444444
7 | 6667778889999
8 | 001122233444444
8 | 5555556677778899999
9 | 0001223333
9 | 566666788888889
10 | 0000111122233333334
10 | 5666677788899
11 | 0112222344
11 | 5555667789
12 | 0000222333334444
12 | 555566778889
13 | 0113444
13 | 555566788889
14 | 111234444
14 | 5555666667778889
15 | 0011234444
15 | 555666777777789
16 | 000022333344444
16 | 6678899
17 | 000013444
17 | 5555789
18 | 12244444
18 | 55567778
19 | 222
19 | 5677778889999
20 | 0123444
20 | 5555579
21 | 0024
21 | 5578
22 | 00123
22 | 577
23 | 01123344
23 | 556788
24 | 0
24 | 8
25 | 001
25 | 699
26 | 12344
26 | 569
27 | 2
27 | 59
28 | 01
28 | 78
29 | 014
29 | 5
30 | 3
30 | 5579
31 |
31 | 8
32 | 12
32 | 7
33 | 12
33 |
34 | 1
34 |
35 |
35 |
36 | 1
36 |
37 | 3
解释:
改变缩放比例后,数据的分布在水平方向上发生了变化。同样,这里的茎在左边,叶子在右边。
使用宽度参数
在 stem() 函数中使用 width 参数,可以将图的宽度改变为所需的图。
例子
# R program to illustrate
# Stem and Leaf Plot
# Drawing Stem and Leaf Plot by changing the width
stem(ChickWeight$weight, width = 100)
输出
The decimal point is 1 digit(s) to the right of the |
2 | 599999999
4 | 0000011111111111111111111222222222222222333345667888888889999999999999000000111111112222+18
6 | 0011111112222222233333444445555566667777788888890011111122222233333444444446667778889999
8 | 00112223344444455555566777788999990001223333566666788888889
10 | 0000111122233333334566667778889901122223445555667789
12 | 00002223333344445555667788890113444555566788889
14 | 11123444455556666677788890011234444555666777777789
16 | 00002233334444466788990000134445555789
18 | 12244444555677782225677778889999
20 | 0123444555557900245578
22 | 0012357701123344556788
24 | 08001699
26 | 12344569259
28 | 01780145
30 | 355798
32 | 12712
34 | 1
36 | 13
解释:
由于宽度从80变为100,数据的分布也发生了变化。这里,图表的左边显示的是茎,而叶子则在图表的右边。
茎叶图的用法
- 茎叶图对于显示数据的形状和相对密度非常有用,因此可以让读者或客户快速了解分布的种类。
- 大多数时候,他们可以保留原始数据,具有相当完美的完整性。
- 这是一种非常有用的方法,可以突出离群值,也可以找到模式。