为给定数据创建累积分布直方图

时间:2016-11-04 20:30:10

标签: python matplotlib

我有以下pandas数据帧android:label="res/raw/app_name.txt"

var cond = function (x) { return x > 4; };
var number = 5;

console.log(cond(number));

我想绘制在X轴上具有df值,在Y轴上具有 Bin Cum_val 0 0 0.39 1 1 0.63 2 2 0.76 3 3 1.00 值的累积分布图(逐步)。

我尝试了这种方法(包括BinCum_val,因为我的数据已经累积),但我在X轴上获得cumulative=True值,而不是在Y轴上:< / p>

cumulative=False

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您需要清楚直方图是什么以及它与数据的关系。您正在尝试从已经是直方图的数据中计算直方图。

从这个意义上讲,matplotlib行为正确:在数组0.39, 0.63, 0.76, 1.00中,每个值只出现一次。如果你打电话给 plt.hist(x=[0.39, 0.63, 0.76, 1.00], normed=True, cumulative=False)
如果没有bins参数,则四个值将分布在默认的10个区间中,从而在图中生成相等高度的条形。

我只能猜测你真正想要达到的目标 - 那就是创建一个简单的价值条形图,比如

import matplotlib.pyplot as plt 
import numpy as np 

data = np.array([[0,1,2,3],[0.39, 0.63, 0.76, 1.00]]).T
plt.bar(data[:,0], data[:,1], 1, tick_label=data[:,0], align="center" )
plt.ylim(0, 1.05)
plt.title('cumulative step')

plt.show()