Files
FFT_and_FP_math/C/plotter.py

58 lines
1.5 KiB
Python
Executable File

#!/usr/bin/pypy3
import plotly.graph_objs as go
from decimal import *
from sys import argv
import csv
def main():
chart = go.Figure()
chart.add_trace(go.Scatter(x=[1,2,3], y=[1,2,3]))
chart.show()
if __name__ == "__main__":
if len(argv) == 1:
main()
else:
f = open(argv[1], "rt")
#csv_reader = csv.reader(f)
data = {}
# for line in csv_reader:
headers = f.readline()
headers = headers.split(",")
headers[-1] = headers[-1][:-1]
for i in range(len(headers)):
headers[i] = headers[i].strip()
for header in headers:
data[header] = []
for line in f:
try:
line_data = line.split(",")
#line_data = line
#print(line_data)
for i in range(len(line_data)):
val = float(line_data[i])
if (i < len(headers)):
header = headers[i]
data[header].append(val)
else:
print("too much values!")
print("headers:", headers)
print("values:", line_data)
except ValueError:
pass
f.close()
# print(data)
chart = go.Figure()
keys = [k for k in data.keys()]
# print("data.keys:", keys)
X_name = keys[0]
print("data samples:",len(data[X_name]))
for key, val in data.items():
if key != X_name:
# chart.add_trace(go.Scatter(x=data[X_name], y=val, name=key, mode="markers+lines"))
chart.add_trace(go.Scatter(x=data[X_name], y=val, name=key, mode="lines"))
chart.show()