📜  Python中的茎叶图

📅  最后修改于: 2022-05-13 01:55:33.293000             🧑  作者: Mango

Python中的茎叶图

茎叶图是一种表示数据的方式。该图用于显示不同类别中的绝对频率,类似于频率分布表或直方图。它以图形格式呈现定量数据,定量数据的茎叶图被称为文本图,因为它根据数据的最高有效数字显示数据。茎叶图主要适用于较小的数据集。

茎叶图是一种表格表示,其中每个数据值被分成一个“茎”(第一个或多个数字)和一个“叶”(通常是最后一个数字)。

解释:

"17" is split into "1" (stem) and "7" (leaf)
"69" is split into "6" (stem) and "9" (leaf)

制作茎叶图的步骤:

  1. 将每个观察/数据分成一个词干,该词干将由除了最右边的数字和叶子(最右边的数字)之外的所有内容组成。
  2. 叶子必须只有一个数字,而茎可以有尽可能多的数字。
  3. 将词干写在顶部最小的垂直列中(但在Python中,您将在顶部获得最大),然后在该列的右侧绘制一条垂直线。
  4. 在垂直线之后的茎右侧的行中写下每个相应的叶子,从茎开始按升序排列。

例子:

假设 GeeksforGeeks 有 10 位技术内容作家。他们每个人提交了100篇文章
在网站上发布。在 100 篇文章中,每 10 位内容作者有一些错误的文章数量如下:

16, 25, 47, 56, 23, 45, 19, 55, 44, 27

茎叶图将是 -

1 | 69
2 | 357
4 | 457
5 | 56

使用 stemgraphic 模块在Python中绘图 -
要在Python中绘制茎叶图,我们需要安装 < strong>stemgraphic module 。您可以从 Jupyter Notebook 安装 stemgraphic 模块:

import sys
!{sys.executable} -m pip install stemgraphic

下面是代码——

# importing the module
import stemgraphic
  
data = [16, 25, 47, 56, 23, 45, 19, 55, 44, 27]
  
# calling stem_graphic with required parameters,
# data and scale
stemgraphic.stem_graphic(data, scale = 10)

输出:

解释 -
上图中最左边的一列是频率计数。在 10-20 范围内有两个观测值,在 20-30 范围内有 3 个观测值,在 0-30 范围内总共有 5 个观测值。以同样的方式继续,共有 10 个观察值位于同一列的顶部。然后在一条垂直线之后,有两个值,一个在最底部我们有 16 个。而在最顶部我们有 56 个,这些值分别是给定数据集中的最小值和最大值。之后,我们有茎值,然后我们有叶子值,用垂直线分隔茎。

注意:您可以将这个matplotlib库从 Jupyter Notebook 安装为 –

import sys
!{sys.executable} -m pip install matplotlib

使用matplotlib.pyplot.stem

# import matplotlib.pyplot library
import matplotlib.pyplot as plt
  
data = [16, 25, 47, 56, 23, 45, 19, 55, 44, 27]
  
# separating the stem parts
stems = [1, 1, 2, 2, 2, 4, 4, 4, 5, 5]
  
plt.ylabel('Data')   # for label at y-axis
  
plt.xlabel('stems')   # for label at x-axis
  
plt.xlim(0, 10)   # limit of the values at x axis
  
plt.stem(stems, data)   # required plot

输出:

参考: https://pypi.org/project/stemgraphic/