引例:
R 莖葉圖
data <- c(1, 35, 57, 40, 73, 82, 68, 69, 52, 1, 23, 35, 55, 65, 48, 93, 59, 87, 2, 64)
stem(data)
1、python 實現
from itertools import groupby data = (1, 35, 57, 40, 73, 82, 68, 69, 52, 1, 23, 35, 55, 65, 48, 93, 59, 87, 2, 64) data = sorted([str(e) for e in data]) # 數據轉換
# k 和 h 分別為每個數值的十位數字和個位數字的字符形式
for k, g in groupby(data, key=lambda x: int(x) // 10): lst = map(str, [int(h) % 10 for h in list(g)]) print (k, '|', ' '.join(lst))
效果: