データフレームをループして、データ内の各数値パラメーターの上部に箱ひげ図を含むヒストグラムを作成しています。目的は、データセット内のすべての変数をよりよく理解することです。以下のコードは機能しますが、私の問題は、ヒストグラムのバーの間にスペースを出力し、各ビンの間にスペースをゼロにしたいということです。どんなアドバイスも大歓迎です-ありがとう!
for i in numerical_cols:
f, (ax_box, ax_hist) = plt.subplots(2, sharex=True, gridspec_kw={"height_ratios": (.15, .85)})
sns.distplot(raw[i], 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)
pdf.savefig()
plt.close()
pdf.close()
plt.cla()
print(" ")
print("Done Writing Frequency Visualizations!")
データは離散しているようで、整数値のみが許可されています。そのため、標準のヒストグラムは、離散値と一致しない同じサイズのビンを作成するため、混乱を招く可能性があります。この場合、多くのビンは空のままです。(たとえば100個の値がある場合、ビンは複数の値を取得しますが、丸めにより、一部のビンは他のビンよりも多くの値を取得します。)
明示的なビンを指定する必要があります。たとえば、整数間の半分にビンの境界があります。
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()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加