import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import os
# set up matplotlib
is_ipython = 'inline' in matplotlib.get_backend()
if is_ipython:
from IPython import display
plt.ion()
def find_csv_files(directory):
csv_files = [] # 用于存储找到的 CSV 文件路径
# 遍历指定路径下的所有文件和子目录
for root, dirs, files in os.walk(directory):
for file in files:
# 检查文件是否以 ".csv" 结尾
if file.endswith(".csv"):
# 构建完整的文件路径并添加到列表中
file_path = os.path.join(root, file)
csv_files.append(file_path)
return csv_files
# 指定要查找的路径
directory_to_search = 'carpet' # 将此路径替换为你想要查找的路径
# 调用函数获取符合条件的 CSV 文件路径列表
csv_files_list = find_csv_files(directory_to_search)
# 打印找到的 CSV 文件路径
for csv_file in csv_files_list:
print(csv_file)
def plot_curves(csv_file):
# 读取CSV文件
df = pd.read_csv(csv_file)
num_rows, num_columns = df.shape
lines = []
# 绘制每一行的曲线图
for i in range(num_rows):
plt.clf() # 清空画布上的所有内容。此处不能调用此函数,不然之前画出的轨迹,将会被清空。
y_values = df.iloc[i] # 使用前frame+1个数据
x_values = range(1, len(y_values) + 1) # 横坐标使用数据个数
line, = plt.plot(x_values, y_values)
lines.append(line)
plt.pause(0.00001) # pause a bit so that plots are updated
if is_ipython:
display.clear_output(wait=True)
display.display(plt.gcf())
# 添加标题和标签
plt.title('-5mm# Ctm Carpet')
plt.xlabel('X')
plt.ylabel('Y')
# 添加图例
plt.legend()
# 显示图形
plt.show()
# 用法示例
csv_file_path = csv_files_list[0] # 替换为你的CSV文件路径
plot_curves(csv_file_path)
下面这两句是动图gif的重点语句
plt.pause(0.00001) # pause a bit so that plots are updated
if is_ipython:
display.clear_output(wait=True)
display.display(plt.gcf())
plt.clf() # 清空画布上的所有内容。此处不能调用此函数,不然之前画出的轨迹,将会被清空。
一个是暂停时间播放下一帧,一个是画布清除