46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
|
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)
|
||
|
|