def roundx(x, y, binstart=0.1):
"""Round off to try and grid-up nearly gridded data
"""
bins = np.arange(x.min(), x.max()+binstart, binstart)
counts, bin_edges = np.histogram(x, bins=bins)
# merge together bins that are nighboring and have counts
new_bin_edges = []
new_bin_edges.append(bin_edges[0])
for i, b in enumerate(bin_edges[1:]):
if (counts[i] > 0) & (counts[i-1] > 0):
pass
else:
new_bin_edges.append(bin_edges[i])
if bin_edges[-1] != new_bin_edges[-1]:
new_bin_edges.append(bin_edges[-1])
indx = np.digitize(x, new_bin_edges)
new_bin_edges = np.array(new_bin_edges)
bin_centers = (new_bin_edges[1:]-new_bin_edges[:-1])/2. + new_bin_edges[:-1]
new_x = bin_centers[indx-1]
return new_x
评论列表
文章目录