blob: 819d1e8fe585464927007cc3be5c8a3ac6bbbc97 [file] [log] [blame]
# SPDX-License-Identifier: GPL-2.0
#
# Copyright (C) 2019, VMware Inc, Tzvetomir Stoyanov <[email protected]>
# Copyright (C) 2019, VMware Inc, Yordan Karadzhov <[email protected]>
import matplotlib.pyplot as plt
import matplotlib.lines as mlines
import numpy as np
import sys
def newline(p1, p2):
ax = plt.gca()
xmin, xmax = ax.get_xbound()
if(p2[0] == p1[0]):
xmin = xmax = p1[0]
ymin, ymax = ax.get_ybound()
else:
ymax = p1[1]+(p2[1]-p1[1])/(p2[0]-p1[0])*(xmax-p1[0])
ymin = p1[1]+(p2[1]-p1[1])/(p2[0]-p1[0])*(xmin-p1[0])
l = mlines.Line2D([xmin,xmax], [ymin,ymax], color='red')
ax.add_line(l)
return l
data = np.loadtxt(fname = sys.argv[1])
selected_ts = data[-1, 1]
selected_ofs = data[-1, 0]
data = data[:-1,:]
x = data[:, 1] - data[:, 0]
mean = x.mean()
std = x.std()
num_bins = 500
min = x.min() #+ .4 * (x.max() - x.min())
max = x.max() #- .4 * (x.max() - x.min())
bins = np.linspace(min, max, num_bins, endpoint = False, dtype=int)
fig, ax = plt.subplots()
# the histogram of the data
n, bins, patches = ax.hist(x, bins, histtype=u'step');
ax.set_xlabel('clock offset [$\mu$s]')
ax.set_ylabel('entries')
ax.set_title("$\sigma$=%i" % std)
x1, y1 = [selected_ofs, min], [selected_ofs, max]
newline(x1, y1)
# Tweak spacing to prevent clipping of ylabel
fig.tight_layout()
plt.show()