Seaborn distplot仅整数

时间:2018-08-09 23:29:26

标签: python matplotlib seaborn

我该如何对seaborn进行分配以仅包含整数?

我的数据是0到〜18之间的数字数组。我想画出数字的分布。

Impressions
0      210
1     1084
2     2559
3     4378
4     5500
5     5436
6     4525
7     3329
8     2078
9     1166
10     586
11     244
12     105
13      51
14      18
15       5
16       3
dtype: int64

我正在使用的代码:

sns.distplot(Impressions,
              # bins=np.arange(Impressions.min(), Impressions.max() + 1),
              # kde=False,
             axlabel=False,
             hist_kws={'edgecolor':'black', 'rwidth': 1})
plt.xticks = range(current.Impressions.min(), current.Impressions.max() + 1, 1)

图看起来像这样:

enter image description here

我期望的是

  • xlabel应该是整数
  • 酒吧应该互相碰
  • kde线应仅连接钢筋的顶部。从外观上看,当前的(x, x + 1)假定为0,因此为什么会有向下的尖峰(这不是必需的,我可以关闭kde)

我不应该对作业或distplot使用正确的工具吗?

1 个答案:

答案 0 :(得分:0)

对于您的问题,下面的代码可以解决,

import seaborn as sns # for data visualization
import numpy as np # for numeric computing
import matplotlib.pyplot as plt # for data visualization

arr = np.array([1,2,3,4,5,6,7,8,9])

sns.distplot(arr, bins = arr, kde = False)
plt.xticks(arr)
plt.show()

enter image description here

通过这种方式,您可以使用seaborn sns.distplot()函数绘制直方图。

注意:无论您将传递到bin和plt.xticks()的任何数据。应该是升序。