Python 在seaborn中,如何删除顶部有方框图的直方图中的间距?

Python 在seaborn中,如何删除顶部有方框图的直方图中的间距?,python,matplotlib,seaborn,histogram,boxplot,Python,Matplotlib,Seaborn,Histogram,Boxplot,我在一个数据框中循环,为数据中的每个数字参数构建一个柱状图,柱状图顶部有一个方框图。目的是更好地理解数据集中的所有变量。下面的代码可以工作,但我的问题是它在直方图中的条之间打印空格,我希望每个箱子之间没有空格。任何建议都将不胜感激-谢谢 for i in numerical_cols: f, (ax_box, ax_hist) = plt.subplots(2, sharex=True, gridspec_kw={"height_ratios": (.15, .85

我在一个数据框中循环,为数据中的每个数字参数构建一个柱状图,柱状图顶部有一个方框图。目的是更好地理解数据集中的所有变量。下面的代码可以工作,但我的问题是它在直方图中的条之间打印空格,我希望每个箱子之间没有空格。任何建议都将不胜感激-谢谢

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个值时,箱子将获得多个值,但由于四舍五入,一些箱子将获得比其他箱子更多的值。)

应给出明确的箱子,例如,箱子边界位于整数之间的一半:

从matplotlib导入pyplot作为plt
将numpy作为np导入
导入seaborn作为sns
p=np.rand.rand(21)+0.1
p/=p.sum()
原始i=np.random.choice(范围(21),大小=1000000,p=p)
垃圾箱=np.arange(-0.5,原始最大值()+1,1)
图(ax_-box,ax_-hist)=plt.子图(2,sharex=True,gridspec_-kw={“高度比”:(.15,.85)})
sns.distplot(原始i,bin=bin,ax=ax\u hist,kde=False)
sns.箱线图(原始箱线,ax=ax箱线)
ax_box.set(xlabel='')
sns.鄙视(ax=ax_hist)
sns.鄙视(ax=ax\u框,左=True)
ax\u box.set\u yticks([])
plt.show()

您的数据似乎是离散的,只允许使用整数值。所以,标准直方图可能会让人困惑,因为它会创建大小相等的箱子,这些箱子和离散值不对齐。在这种情况下,许多垃圾箱是空的。(例如,当您有100个值时,箱子将获得多个值,但由于四舍五入,一些箱子将获得比其他箱子更多的值。)

应给出明确的箱子,例如,箱子边界位于整数之间的一半:

从matplotlib导入pyplot作为plt
将numpy作为np导入
导入seaborn作为sns
p=np.rand.rand(21)+0.1
p/=p.sum()
原始i=np.random.choice(范围(21),大小=1000000,p=p)
垃圾箱=np.arange(-0.5,原始最大值()+1,1)
图(ax_-box,ax_-hist)=plt.子图(2,sharex=True,gridspec_-kw={“高度比”:(.15,.85)})
sns.distplot(原始i,bin=bin,ax=ax\u hist,kde=False)
sns.箱线图(原始箱线,ax=ax箱线)
ax_box.set(xlabel='')
sns.鄙视(ax=ax_hist)
sns.鄙视(ax=ax\u框,左=True)
ax\u box.set\u yticks([])
plt.show()

谢谢@JohanC为我工作&看起来好多了!谢谢@JohanC为我工作&看起来好多了!