我在使用Python直方图时遇到了一些麻烦。我有2条贝尔曲线具有相同的点数,但这些点的值非常不同。我想比较曲线的形状。图1和图2显示了我得到的东西。我希望它看起来像下面的情节3,但不是积分!
import numpy as np
import matplotlib.pyplot as plt
hist1 = np.random.normal(0,100,1000)
hist2 = np.random.normal(0,1,1000)
nBins = 100
plt.figure(1)
plt.hist((hist1,hist2),bins=nBins)
plt.figure(2)
plt.hist(hist1,bins=nBins)
plt.hist(hist2,bins=nBins)
plt.figure(3)
plt.plot(np.histogram(hist1,bins=nBins)[0],'o')
plt.plot(np.histogram(hist2,bins=nBins)[0],'o')
答案 0 :(得分:1)
确实非常简单。
之前必须将两个功能标准化,并在同一图中单独绘制它们。
import numpy as np
import matplotlib.pyplot as plt
hist1 = np.random.normal(0,100,1000)
hist2 = np.random.normal(0,1,1000)
nBins = 10
def Standardize(distribution):
newDistribution = (distribution-np.mean(distribution))/np.std(distribution)
return newDistribution
plt.figure(2)
plt.hist(Standardize(hist1),bins=nBins)
plt.hist(Standardize(hist2),bins=nBins)