【发布时间】:2017-06-27 17:48:08
【问题描述】:
为了说明我的问题,我准备了一个例子:
首先,我有两个数组“a”和“b”,我对它们的分布感兴趣:
import numpy as np
import matplotlib.pyplot as plt
a = np.array([1,2,2,2,2,4,8,1,9,5,3,1,2,9])
b = np.array([5,9,9,2,3,9,3,6,8,4,2,7,8,8])
n1,bin1,pat1 = plt.hist(a,np.arange(1,10,2),histtype='step')
n2,bin2,pat2 = plt.hist(b,np.arange(1,10,2), histtype='step')
plt.show()
这段代码给了我一个带有两条“曲线”的直方图。现在我想从另一个中减去一个“曲线”,我的意思是我对每个 bin 分别执行此操作:
n3 = n2-n1
我不需要负数所以:
for i in range(0,len(n2)):
if n3[i]<0:
n3[i]=0
else:
continue
新的直方图曲线应绘制在与先前曲线相同的范围内,并且应具有相同数量的 bin。所以我有 bin 的数量及其位置(与其他曲线的位置相同,请参阅上面的块)以及每个 bin 应具有的频率或计数 (n3)。您对我如何使用我拥有的数据执行此操作有任何想法吗?
【问题讨论】:
标签: python matplotlib plot subtraction curves