在matplotlib中获取逆序累积直方图的技巧

时间:2015-03-05 23:30:08

标签: python matplotlib histogram cumulative-frequency

我想知道是否有一个(更好的)技巧来反转matplotlib中的累积直方图。

假设我在0.0到1.0的范围内有一些分数,其中1.0是最好的分数。现在,我有兴趣绘制有多少样本高于某个分数阈值。

import numpy as np
import matplotlib.pyplot as plt

d = np.random.normal(size=1000)
d = (d - d.min()) / (d.max() - d.min())

plt.hist(d, 50, histtype="stepfilled", alpha=.7)

enter image description here

默认情况下,matplotlib会绘制累积直方图,例如'样本数< =得分'

plt.hist(d, 50, histtype="stepfilled", alpha=.7, cumulative=True)

enter image description here

我真正想要的是累积直方图不显示'样本数< =得分'但是'样本数> =得分'

我可以这样做,但那我怎么能摆脱x轴上的“减号”呢?

plt.hist(d-1, 50, histtype="stepfilled", alpha=.7, cumulative=True)

enter image description here

有更好的想法吗?

1 个答案:

答案 0 :(得分:11)

非常确定你可以在函数调用中使用cumulative=-1

plt.hist(d, 50, histtype="stepfilled", alpha=.7, cumulative=-1)

来自matplotlib hist()docs:

  

如果累积评估小于0(例如-1),则累积方向反转。

看看第三个示例图像here;我认为它符合你的要求。