Bioprobes_data/python_server/plot.py

46 lines
1.5 KiB
Python
Raw Permalink Normal View History

2024-07-23 16:39:18 +08:00
import numpy as np
import matplotlib.pyplot as plt
import csv
import os
def read_csv_column(csv_file_path, header_name, step=10):
with open(csv_file_path, 'r') as file:
reader = csv.DictReader(file)
column = []
for i, row in enumerate(reader):
if i % step == 0:
column.append(round(float(row[header_name]), 4))
return column
def plotCurves(csv_file_path, save_path, col_names, step=10):
# plt.clf()
plt.figure(figsize=(12, 8))
fig, ax = plt.subplots()
for col_name in col_names:
y_data = read_csv_column(csv_file_path, col_name, step=step)
x_data = list(range(0, len(y_data)))
ax.plot(x_data, y_data, label=col_name)
plt.xlabel('Time')
plt.ylabel('Value')
plt.title('Raw Data')
ax.legend()
plt.savefig(save_path)
def process_all_csv_files(data_directory, output_directory, col_names, step=10):
for filename in os.listdir(data_directory):
if filename.endswith('.csv'):
csv_file_path = os.path.join(data_directory, filename)
save_path = os.path.join(output_directory, filename.split('.')[0] + '.png')
plotCurves(csv_file_path, save_path, col_names, step)
if __name__ == '__main__':
data_directory = r'D:\pycharmProjects\python_server\data'
output_directory = r'D:\pycharmProjects\python_server\raw_png'
col_names = ('accX', 'accY', 'accZ', 'gyroX', 'gyroY', 'gyroZ', 'magX', 'magY', 'magZ')
process_all_csv_files(data_directory, output_directory, col_names, step=1)