对于数据diffs07
和diffs14
,在Matlab
中,我只需使用以下内容即可获取分箱数据的x和y坐标:
[ys07, xs07] = hist(-log10(diffs07), 250);
[ys14, xs14] = hist(-log10(diffs14), 250);
然而,在Python
中,我无法找到一种直截了当的方式,所以我正在使用:
xs_diffs = np.linspace(0, 17, 250)
dx = xs_diffs[1]-xs_diffs[2]
ys07 = []
ys14 = []
for x in xs_diffs:
ys07.append( len( [ ty for ty in diffs07 if (-np.log10(ty)-dx/2.0 < x and -np.log10(ty) < x+dx/2.0) ] ) )
ys14.append( len( [ ty for ty in diffs14 if (-np.log10(ty)-dx/2.0 < x and -np.log10(ty) < x+dx/2.0) ] ) )
plt.plot(xs_diffs, ys07, 'r.', xs_diffs, ys14, 'b.')
plt.show()
但与Matlab
代码相比,这需要相当长的时间。在Python
?
答案 0 :(得分:5)
OleDbType
用于自动选择bin(Matlab相当于你的第一个语句)。可替代地,
hist, bin_edges = np.histogram(diffs07,bins=250)
如果要根据初始尝试指定使用的箱柜范围,则应使用。
Matplotlib还有非常有用的hist, bin_edges = np.histogram(diffs07,bins=np.linspace(0,17,250))
用于即时绘图,同样可以选择自动或设置分档。