【发布时间】:2020-04-07 21:32:19
【问题描述】:
我有 2 个CDF 并且必须找到最大的逐点距离。我创建了直方图并绘制了两者。这些值由一个随机函数生成,该函数将两个随机数 1-6 的总和 100 次,类似于两个骰子。但是,我无法找到绘图上两条线之间的最大距离。
所以,在第一次运行时,我有一个包含 100 个观察值的列表,dicesum=: {1: 5, 2: 8, 3: 7, ...., 100:4}。
1 到 100 是旋转次数,右侧是总和。使用此代码,我生成了直方图:
keys,values = zip(*dicesum.items())
plt.hist(values, bins=30)
plt.gca().set(title='Frequency Histogram', ylabel='Frequency');
plt.show()
现在我用这段代码绘制 CDF:
x = np.sort(values)
y = np.arange(1, len(x)+1/float(len(x)))
plt.plot(x, y, color='b')
plt.xlabel('Sum')
plt.ylabel('CDF')
plt.show()
现在,在同一个图中绘制 2 个观察值以查看它们的差异:
现在我想得到它们的最大距离,那么它们之间的距离最远。
【问题讨论】:
-
CDF 我假设你的意思是累积分布函数?你不能把两者相减并寻找最大值吗?例如类似
imax = np.argmax(np.abs(y1-y2))。 (这会告诉你在哪个点,然后你可以在那个点进行评估以获得最大距离。) -
是的,我的意思是累积分布函数?所以你可以在最后一张图片上看到有 2 行 2 个单独的观察。现在我必须找出它们在哪一点上彼此相距更远。我尝试了您的建议,但似乎不适用于我的情况。谢谢
标签: python matplotlib plot dice cdf