12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import sys
- import matplotlib.pyplot as plt
- import pandas as pd
- titles = {
- '1-oe_ardusink.csv': 'PulsePal → Open Ephys Arduino Output Sink',
- '2-oe_event_zmq_arduino.csv': 'OE event/ZMQInterface → OPETH/Arduino',
- '3-oe_data_zmq_arduino.csv': 'OE data/ZMQInterface → OPETH/Arduino',
- '4-oe_data_filter_zmq_arduino.csv': 'OE filtered data/ZMQInterface → OPETH/Arduino',
- '5-oe_intan.csv': 'OE + Intan/ZMQInterface → OPETH/Arduino'
- }
- if sys.argv[1:]:
- fname = sys.argv[1]
- lines = open(fname, 'rt').readlines()[1:]
- else:
- print("Missing input file")
- exit()
-
- fig, (ax1, ax2) = plt.subplots(2, figsize=(5,7))
- meas = [float(l.split(';')[2].replace(',', '.'))*1000 for l in lines]
- results = pd.DataFrame(meas, columns=['latency'])
- print(results)
- print(pd.DataFrame([results.mean(), results.std(), results.min(), results.max()],
- index=['mean', 'std', 'min', 'max']))
- results.plot(ax=ax1)
- ax1.set_ylabel('[ms]')
- results.hist(ax=ax2)
- ax2.set_xlabel('[ms]')
- ax1.set_ylim([0,38])
- ax2.set_ylim([0,35])
- ax2.set_ylabel('number of pulses')
- title = titles[fname] if fname in titles else sys.argv[2]
- ax1.set_title(title)
- ax2.set_title('mean: %.1f stddev: %.1f max: %.1f ms' % (results.mean(), results.std(), results.max()))
- basename = fname.split('.')[0]
- fig.savefig(basename + '.png')
- fig.savefig(basename + '.svg')
- plt.show()
|