目录
- 茎叶图
- 附
- df.plot()参数解析
- 简介itertools
茎叶图
又称枝叶图。一种较简便的表达数据信息的图表。
- 思想
将数值按位区分为两部分,数值不变或变化不大的部分作为“茎”,变化大的作为“叶”,沿水平线堆放,形成组类分明的数据图。 - 步骤
1.排序
2.分组
3.出图、给结论。 - 优缺
- 优
1.简单,直观反映数据水平状况、稳定程度等;
2.无数据丢失,所有数据均可得到;
3.方便随时记录。 - 缺
1.粗,差异不大时难对比;
2.数据量大时难绘制;
3.只便于表示两位有效数字的数据,且组数过多时不够直观。
- 优
# Python
from itertools import groupby
data = '89 79 57 46 1 24 71 5 6 9 10 15 16 19 22 31 40 41 52 55 60 61 65 69 70 75 85 91 92 94'
for k, it in groupby(sorted(data.split(), key=lambda x: int(x)), key=lambda x: int(x)//10):
print(k, [int(i)%10 for i in it])
# ----
0 [1, 5, 6, 9]
1 [0, 5, 6, 9]
2 [2, 4]
3 [1]
4 [0, 1, 6]
5 [2, 5, 7]
6 [0, 1, 5, 9]
7 [0, 1, 5, 9]
8 [5, 9]
9 [1, 2, 4]
# 例2
from itertools import groupby
# 品种A(data1)与品种B(data2)对照试验,亩产数据如下:
data1 = '357, 359, 367, 368, 375, 388, 392, 399, 400, 405, 412, 414, 415, 421, 423, 423, 427, 430, 430, 434, 443, 445, 445, 451, 454'
data2 = '363, 371, 374, 383, 385, 386, 391, 392, 394, 394, 395, 397, 397, 400, 401, 401, 403, 406, 407, 410, 412, 415, 416, 422, 430'
for m, n in groupby(sorted(data1.split(', '), key=lambda x: int(x)), key=lambda x: int(x)//10):
lis = [int(i)%10 for i in n]
print(len(lis), m, lis)
for m, n in groupby(sorted(data2.split(', '), key=lambda x: int(x)), key=lambda x: int(x)//10):
lis = [int(i)%10 for i in n]
print(len(lis), m, ''.join(map(str, lis)))
# ---
# data1
# 频率;茎;叶
2 35 [7, 9]
2 36 [7, 8]
1 37 [5]
1 38 [8]
2 39 [2, 9]
2 40 [0, 5]
3 41 [2, 4, 5]
4 42 [1, 3, 3, 7]
3 43 [0, 0, 4]
3 44 [3, 5, 5]
2 45 [1, 4]
# data2 -- (SPSS)
1 36 3
2 37 14
3 38 356
7 39 1244577
6 40 011367
4 41 0256
1 42 2
1 43 0
# 结论:A品种产量不够稳定,B品种产量比较集中。
附: