用 Python 可视化数值数据:如何使用干支图
如果要可视化随时间或序列变化的数值数据,哪种图形最好?如下图所示,主干图是一种清晰的 Python 变化可视化图,它将数据点表示为从基线到每个值的垂直线和标记。

在本帖中,我们将使用 Python matplotlib我们将提供详细的解释和分步代码,敬请关注!
数值数据和茎干图
什么是数字数据?
数值数据是一种 数字并分为连续型(身高、体重)和离散型(计数)。
什么是stemplot?
干铎是一种 使用垂直线和标记将数字数据可视化的图表是
- 数据点用线和记号笔。
- 订购I 随着时间的推移而变化在表达
数据示例
下面是一个例子 数值数据示例是

1. 传感器测量
传感器测量温度或湿度随时间变化的结果。
| 时间(分钟) | 温度(°C) |
|---|---|
| 1 | 22 |
| 2 | 24 |
| 3 | 23 |
| 4 | 25 |
| … | … |
- 杠杆作用将时间和温度数据可视化为茎图,可帮助您了解一天中某些时段温度骤升或骤降的模式。
2. 产品销售
产品在特定时间段内(例如每天)的销售次数。
| 日期 | 销售量(单位) |
|---|---|
| 1 天 | 50 |
| 2 天 | 80 |
| 3 天 | 30 |
| 4 天 | 100 |
| 5 天 | 70 |
- 杠杆作用Stemplots : Stemplots 为您提供了一种直观的方式来查看各日销售额的波动情况,这可以帮助您分析造成某日销售额激增的原因。
3. 考试成绩
学生在考试中获得的分数。
| 学生编号 | 得分 |
|---|---|
| 1 | 75 |
| 2 | 90 |
| 3 | 65 |
| 4 | 85 |
| … | … |
- 杠杆作用您可以使用茎图来突出显示特定学生的分数分布和成绩变化。
4. 事件发生的次数
记录特定系统或机器发生事件次数的数据。
| 时区 | 事件计数 |
|---|---|
| 00:00 | 5 |
| 01:00 | 2 |
| 02:00 | 10 |
| 03:00 | 8 |
| … | … |
- 杠杆作用分析:从图表中看到事件在一天中的某些时间段集中发生的模式,可以帮助您分析原因并进行优化。
Python stemplot 代码示例
让我们用下面的代码实现一个 stemplot,将数字数据可视化。
import matplotlib.pyplot as plt
import numpy as np
创建 # 数字数据
x = np.range(0, 100, 1) # X 轴:从 0 到 99 的有序数据
y = np.random.randint(50, 300, size=100) # Y 轴:介于 50 和 300 之间的随机数值数据
绘制 # 直方图
plt.figure(figsize=(12, 6)) # 设置图形大小
plt.stem(x, y, linefmt='b-', markerfmt='bo', basefmt='r-')
# 图形标题和标签
plt.title("Stem Plot of Numerical Data", fontsize=15)
plt.xlabel("Index", fontsize=12)
plt.ylabel("Values", fontsize=12)
收紧 # 布局和图形输出
plt.tight_layout()
plt.show()
代码简介
- 生成数据
xX:0 至 99 的数字,用于 X 轴 顺序数据.y用于 Y 轴的介于 50 和 300 之间的数值 随机数字数据.
- 绘制茎状植物
plt.stem():绘制茎干图的函数。linefmt='b-'垂直线:将垂直线显示为蓝色实线。markerfmt='bo':用蓝色圆形标记标记数据点。basefmt='r-'注:基线(底线)用红色实线表示。
- 设置图表布局
- 设置标题、X/Y 标签和
tight_layout()来调整边距,以输出更整洁的图表。
- 设置标题、X/Y 标签和
总结
茎干图是 Python 对数值数据进行直观可视化的有用工具。 它将每个点表示为从基线到 数据变化以一种明确的方式。您可以考虑以下用例
使用案例
- Python 传感器数据可视化分析传感器数值随时间的变化。
- 时间序列数据突出显示特定时间段内的变化。
- 尖峰分析:检测数据的突然波动。
如果您对 Python 的可视化感兴趣,请点击此处、 用 Python 可视化技术可视化分类数据:分组条形图和分类数据示例 阅读文章,积累知识!
#代码冗长评注
1. 导入库
import matplotlib.pyplot as plt import numpy as np
matplotlib.pyplot图形库:用于绘制图形的库。numpy用于生成数字数据。2 生成数字数据
x = np.range(0, 100, 1) # X 轴:0 到 99 之间的有序数据 y = np.random.randint(50, 300, size=100) # Y 轴:50 到 300 之间的随机数值数据
np.range(0, 100, 1)从 0 到 99 的数字,间隔为 1。np.random.randint(50, 300, size=100)生成 100 个介于 50 和 300 之间的整数。3. 绘制茎干图
plt.figure(figsize=(12, 6)) plt.stem(x, y, linefmt='b-', markerfmt='bo', basefmt='r-', use_line_collection=True)
plt.figure(figsize=(12, 6))将图形的大小设置为横向 12 和纵向 6。plt.stem()绘制茎干图。
linefmt='b-'垂直线:将垂直线显示为蓝色实线。markerfmt='bo':用蓝色圆形标记标记数据点。basefmt='r-'显示基线:显示基线为红色实线。use_line_collection=True图形性能优化选项。4. 设置图表标题和标签
plt.title("Stem Plot of Numerical Data", fontsize=15) plt.xlabel("Index", fontsize=12) plt.ylabel("Values", fontsize=12)
plt.title()标题:设置图表的标题。plt.xlabel():设置 X 轴标签。plt.ylabel():设置 y 轴标签。5. 调整布局并输出图表
plt.tight_layout() plt.show()
plt.tight_layout():自动调整图形边距,防止元素重叠。plt.show()打印:将图形打印到屏幕上。






