使用 Matplotlib 绘制多行数据直方图
使用 Matplotlib 绘制多行数据直方图
本示例演示如何使用 Python 的 Matplotlib 库从文本文件中读取数据,并将其绘制为多个直方图。每个直方图对应文件中的一行数据,共 6 行。
import matplotlib.pyplot as plt
# 读取文件中的数据
with open('C:\Users\New\Desktop\output.txt', 'r') as file:
lines = file.readlines()
# 创建一个 6 行 1 列的子图
fig, axs = plt.subplots(6, 1, figsize=(10, 20))
# 循环遍历每一行数据并绘制直方图
for i, line in enumerate(lines):
# 分割每行数据为 10 个数字
numbers = line.strip().split()
# 将字符串类型的数字转换为浮点数
numbers = [float(num) for num in numbers]
# 绘制直方图
axs[i].hist(numbers, bins=10)
# 设置子图标题
axs[i].set_title(f'Row {i+1}')
# 调整子图之间的间距
plt.tight_layout()
# 显示图形
plt.show()
代码解释:
- 导入 Matplotlib 库:
import matplotlib.pyplot as plt - 读取数据: 使用
with open(...) as file:语句打开文本文件,并使用readlines()方法读取所有行。 - 创建子图: 使用
plt.subplots(6, 1, figsize=(10, 20))创建一个 6 行 1 列的子图,并设置图形大小为 10 英寸 x 20 英寸。 - 循环绘制直方图: 使用
for循环遍历每一行数据,并执行以下步骤:- 使用
line.strip().split()将每行数据分割为 10 个数字。 - 使用列表推导将字符串类型的数字转换为浮点数。
- 使用
axs[i].hist(numbers, bins=10)绘制直方图,其中bins=10指定直方图的柱状数。 - 使用
axs[i].set_title(f'Row {i+1}')设置每个子图的标题。
- 使用
- 调整子图间距: 使用
plt.tight_layout()调整子图之间的间距,使它们不会重叠。 - 显示图形: 使用
plt.show()显示生成的图形。
注意:
- 请确保
output.txt文件存在于代码所在目录中。 - 文件中的每行必须包含 10 个数字,数字之间用空格隔开。
- 可以根据需要调整
bins参数来改变直方图的柱状数。
示例输出:
生成的图形将包含 6 个直方图,每个直方图对应 output.txt 文件中的一行数据。
应用:
本示例可以用于可视化来自文本文件的多行数据,例如实验数据、传感器数据等。
相关资源:
原文地址: https://www.cveoy.top/t/topic/qnjk 著作权归作者所有。请勿转载和采集!