我想知道是否有一个(更好的)技巧来反转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)
默认情况下,matplotlib会绘制累积直方图,例如'样本数< =得分'
plt.hist(d, 50, histtype="stepfilled", alpha=.7, cumulative=True)
我真正想要的是累积直方图不显示'样本数< =得分'但是'样本数> =得分'
我可以这样做,但那我怎么能摆脱x轴上的“减号”呢?
plt.hist(d-1, 50, histtype="stepfilled", alpha=.7, cumulative=True)
有更好的想法吗?
答案 0 :(得分:11)
非常确定你可以在函数调用中使用cumulative=-1
:
plt.hist(d, 50, histtype="stepfilled", alpha=.7, cumulative=-1)
来自matplotlib hist()docs:
如果累积评估小于0(例如-1),则累积方向反转。
看看第三个示例图像here;我认为它符合你的要求。