2024-09-30 14:25:04 发布
网友
假设我有一个数据帧,看起来(简化)如下
>>> df freq 2 2 3 16 1 25
其中index列表示一个值,freq列表示该值出现的频率,如频率表中所示。
freq
我想为这个表绘制一个密度图,就像从plot kindkde获得的一样。然而,这种情况显然只适用于pd.Series。我的df太大了,无法展开成1D系列,即df = [2, 2, 3, 3, 3, ..,, 1, 1]。 在这种情况下,我怎么能画出这样的密度图呢?
kde
pd.Series
df
df = [2, 2, 3, 3, 3, ..,, 1, 1]
我知道您要求的是df太大而无法展开的情况,但下面的答案适用于情况并非如此的情况:
pd.Series(df.index.repeat(df.freq)).plot.kde()
或者更一般地说,当值在名为val的列中而不是索引中时:
val
如果将y值按总体大小的乘积归一化,则可以使用条形图绘制密度分布。这将使条覆盖的面积等于1。在
plt.bar( df.index, df.freq / df.freq.sum(), width=-1, align='edge' )
width和align参数确保每个条覆盖间隔(k-1,k)。在
width
align
有更好的统计学知识的人应该回答核密度估计是否真的对离散分布有意义。在
也许这会奏效:
import matplotlib.pyplot as plt plt.plot(df.index, df['freq']) plt.show()
我知道您要求的是
df
太大而无法展开的情况,但下面的答案适用于情况并非如此的情况:或者更一般地说,当值在名为
^{pr2}$val
的列中而不是索引中时:如果将y值按总体大小的乘积归一化,则可以使用条形图绘制密度分布。这将使条覆盖的面积等于1。在
width
和align
参数确保每个条覆盖间隔(k-1,k)。在有更好的统计学知识的人应该回答核密度估计是否真的对离散分布有意义。在
也许这会奏效:
相关问题 更多 >
编程相关推荐