非均匀箱形图
与记录数值不同,
np.log10(df.timeLength)
尝试在计算直方图时创建非均匀分箱。这可以通过
np.histogram
的bins
参数 实现。
基于“如果我可以将它们放置为1秒、10秒、1分钟、10分钟、1小时、1天等”,可以创建以下分箱数组。
bins = np.array([0, 1, 10, 60, 60*10, 60*60, 24*60*60])
例子
原始数据集被扩大以填充更多的箱子(平均值=5,标准差=2
而不是平均值=10,标准差=1
),这只是一个例子。非均匀的箱子被定义,直方图被计算并呈现出来。箱子仅供参考,可以进行修改。
x = np.random.lognormal(mean=5, sigma=2, size=10000)
df = pd.DataFrame(x, columns=['timeLength'])
print df.describe()
print
bins = np.array([0, 1, 10, 60, 60*10, 60*60, 24*60*60])
print 'hisogram bins:', bins
y, x = np.histogram(df, bins=bins, normed=True)
x = x[1:]
hist = pd.Series(y, x)
ax = hist.plot(kind='bar', width=1, alpha=0.5, align='center')
ax.set_title('Non-Uniform Bin Histogram')
ax.set_xlabel('Time Length')
ax.set_xticklabels(['1 s', '10 s', '1 Min', '1 Hr', '1 Day', '>1 Day'], rotation='horizontal')
timeLength
count 10000.000000
mean 1014.865417
std 4751.820312
min 0.062893
25% 36.941388
50% 144.081235
75% 556.223797
max 237838.467337
hisogram bins: [ 0 1 10 60 600 3600 86400]
![non-uniform bin histogram](https://istack.dev59.com/TWBzd.webp)
请告知是否这不是预期结果。