我有一个名为exp的df,其中包含以下列:
| category | p_value | score |
| tennis | 0.45 | 432 |
| soccer | 0.88 | 46 |
我的目标是对每个p值的所有分数进行归类,并创建一个按类别分组的累积图。
我设法使用以下方法创建垃圾箱:
# find the p_value bin, each row belongs to
# 0 is underflow, len(edges) is overflow bin
exp['bin'] = np.digitize(exp['p value'], bins=bin_edges)
# get the number of UBI per p_value bin
score_per_bin = exp.groupby('bin')['score'].sum()
然后设法绘制它: 并非每个垃圾箱都可以装满,所以我们将使用熊猫索引
binned = pd.DataFrame({
'center': bin_center,
'width': bin_width,
'score': np.zeros(len(bin_center))
}, index=np.arange(1, len(bin_edges)))
binned['score'] = score_per_bin
plt.step(
binned['center'],
binned['score'].cumsum(),
where='mid',
)
plt.xlabel('p-value')
plt.ylabel('score')
plt.show()
但是我得到了一条带有1条线的图,而每个类别需要一条线。 我的问题是-如何保留类别并进行绘制?
谢谢