首页 > 解决方案 > Seaborn distplot 只有整数

问题描述

我怎样才能用 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)

情节如下所示:

在此处输入图像描述

我所期待的:


我是否使用了正确的工具来完成这项工作,或者 distplot 不应该用于整数?

标签: pythonmatplotlibseaborn

解决方案


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

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()

在此处输入图像描述

这样,您可以使用 seabornsns.distplot()函数绘制直方图。

注意:无论您将传递给 bins 和 plt.xticks() 的任何数据。它应该是一个升序。


推荐阅读