【问题标题】:Creating a histogram using np.logspace() with a KDE superimposed使用叠加了 KDE 的 np.logspace() 创建直方图
【发布时间】:2019-12-18 13:11:38
【问题描述】:

我有一个大型数据集(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.csv', skipinitialspace=True, usecols=columns)

data=df[['C']].dropna().values
data=np.logspace(data)
plt.hist(data, bins='auto') 

我目前收到以下错误 logspace() 缺少 1 个必需的位置参数:“停止” 当我不使用日志空间时,我可以获得直方图,但不是我正在寻找的直方图。我对 python 很陌生,因此非常感谢您的帮助。

【问题讨论】:

    标签: python pandas numpy matplotlib histogram


    【解决方案1】:

    np.logspacenp.linspace 类似,用于创建一个仅在日志空间中均匀分布的数组。 np.logspace 采用起始值和结束值来创建数组,您可以查看文档 here。它不会记录您的数据。为此,您需要使用 np.log

    【讨论】:

    • 感谢您的解释,让我重新表述我的要求。我们提示在 X 轴上使用对数间隔的 bin,因此我们应该为此使用 np.logspace。我是统计新手,在如何选择此函数的开始和结束方面需要帮助,因为我也不熟悉如何选择 bin 的数量。
    • 您想使用np.logspace 创建您的垃圾箱,然后用于您的直方图。像bins = np.logspace(np.min(data),np.max(data)) 然后plt.hist(data,bins=bins)
    • 我收到以下错误:RuntimeWarning:在 power return _nx.power(base, y) 中遇到溢出,RuntimeWarning:在减法中遇到无效值 a = op(a[slice1], a[slice2 ]),RuntimeWarning:在乘 boffset = -0.5 * dr * totwidth * (1 - 1 / nx) 中遇到无效值。我的数据包含负数和 0 作为可能值。
    • 那么你已经回答了你自己的问题......如果你有负数或零,你不能使用 log 所以你需要使用 .01 作为你的 start 值,这意味着你的直方图不会'不计算这些数字。
    • 感谢这帮助我处理直方图部分。现在我正在尝试在顶部添加 KDE。我使用 kde=df.data.plot.kde() 将 KDE 分开。我现在需要结合这两种类型的可视化。
    猜你喜欢
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    相关资源
    最近更新 更多