1 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
您的數(shù)據(jù)似乎是離散的,只允許整數(shù)值。因此,標(biāo)準(zhǔn)直方圖可能會(huì)造成混淆,因?yàn)樗鼤?huì)創(chuàng)建與離散值不對(duì)齊的大小相等的分箱。在這種情況下,許多箱子都是空的。(例如,當(dāng)您有 100 個(gè)值時(shí),箱子將獲得多個(gè)值,但由于四舍五入,某些箱子將獲得比其他箱子更多的值。)
應(yīng)該給出明確的 bin,例如在整數(shù)之間的一半處有 bin 邊界:
from matplotlib import pyplot as plt
import numpy as np
import seaborn as sns
p = np.random.rand(21) + 0.1
p /= p.sum()
raw_i = np.random.choice(range(21), size=1000000, p=p)
bins = np.arange( -0.5, raw_i.max()+1, 1)
fig, (ax_box, ax_hist) = plt.subplots(2, sharex=True, gridspec_kw={"height_ratios": (.15, .85)})
sns.distplot(raw_i, bins=bins, ax=ax_hist, kde=False)
sns.boxplot(raw_i, ax=ax_box)
ax_box.set(xlabel='')
sns.despine(ax=ax_hist)
sns.despine(ax=ax_box, left=True)
ax_box.set_yticks([])
plt.show()
添加回答
舉報(bào)