python - 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)
情节如下所示:
我所期待的:
- xlabels 应该是整数
- 酒吧应该相互接触
- kde 线应该简单地连接条的顶部。从外观上看,当前假设在 0 之间有 0
(x, x + 1)
,因此为什么向下尖峰(这不是必需的,我可以关闭 kde)
我是否使用了正确的工具来完成这项工作,或者 distplot 不应该用于整数?
解决方案
对于您的问题可以通过以下代码解决,
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() 的任何数据。它应该是一个升序。
推荐阅读
- ios - 为什么没有状态栏的新 iPad 上的 safeAreaInsets 和 safeAreaLayoutGuide 看起来不对?
- typescript - 如何检查我的属性是否存在于类型中
- python - 来自多个模型的 Django 过滤器
- mongodb - 通过 MongoDB (docker) 进行 CAS 授权
- javascript - 如何让服务器在普通的 PHP / SQL 网站后面执行任务?
- python - 使用 pandas 将年度格式的数据转换为财务数据
- javascript - 使用 glob 导入多个文件
- c++ - 这个函数 ft_isalnum 有什么作用?
- php - Laravel Eloquent 从 belongsToMany() 查询中排除特定结果
- python - python - 如何查找字符串是否在列表中或python中的列表中?