Python 使用叠加KDE的np.logspace()创建直方图
我有一个大的数据集(50k行),我想从数据中创建一个直方图,密度沿Y轴,值在x轴上按对数缩放,并叠加KDE图 这是所用数据的一小部分:Python 使用叠加KDE的np.logspace()创建直方图,python,pandas,numpy,matplotlib,histogram,Python,Pandas,Numpy,Matplotlib,Histogram,我有一个大的数据集(50k行),我想从数据中创建一个直方图,密度沿Y轴,值在x轴上按对数缩放,并叠加KDE图 这是所用数据的一小部分: A B C 1 1 4200 1 4 94000 1 4 81000 1 3 30000 1 3 29000 1 1 20400 Current code: columns= ['A','B','C'] df=pd.read_csv('data.
A B C
1 1 4200
1 4 94000
1 4 81000
1 3 30000
1 3 29000
1 1 20400
Current code:
columns= ['A','B','C']
df=pd.read_csv('data.csv', skipinitialspace=True, usecols=columns)
data=df[['C']].dropna().values
data=np.logspace(data)
plt.hist(data, bins='auto')
我目前得到以下错误
logspace()缺少1个必需的位置参数:“stop”
当我不使用logspace时,我可以得到一个直方图,但不是我要找的那个。我对python非常陌生,因此非常感谢您的帮助。
np.logspace
的工作原理类似于np.linspace
,用于创建仅在日志空间中均匀分布的数组np.logspace
使用起始值和结束值创建数组,您可以查看文档。它不会记录您的数据。您需要使用np.log
。谢谢您的解释,让我重新表述一下我的问题。我们有一个提示,在X轴上使用对数间隔的箱子,因此我们应该使用np.logspace。我不熟悉统计,需要帮助我如何选择此功能的开始和结束,因为我也不熟悉如何选择存储箱的数量。您想使用np.logspace
创建存储箱,然后创建直方图。类似于bins=np.logspace(np.min(data),np.max(data))
thenplt.hist(data,bins=bins)
我得到了以下错误:运行时警告:在电源返回中遇到溢出\u nx.power(base,y),运行时警告:在subtract a=op(a[slice1],a[slice2]中遇到无效值,运行时警告:乘法boffset=-0.5*dr*totwidth*(1-1/nx)中遇到无效值。我的数据包含负数和0作为可能的值。然后您已经回答了自己的问题。。。如果您的数值为负数或为零,则不能使用log,因此您需要使用.01作为start
值,这意味着您的柱状图不会计算这些数字。感谢这对柱状图部分的帮助。现在我正试图在顶部添加KDE。我使用KDE=df.data.plot.KDE()将KDE分开。我现在需要将这两种类型的可视化结合起来。