Python 比较具有不同x轴值的直方图

Python 比较具有不同x轴值的直方图,python,matplotlib,histogram,Python,Matplotlib,Histogram,我在使用Python直方图时遇到一些问题。我有两条钟形曲线,点的数量相同,但这些点的值却大不相同。我想比较一下曲线的形状。图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

我在使用Python直方图时遇到一些问题。我有两条钟形曲线,点的数量相同,但这些点的值却大不相同。我想比较一下曲线的形状。图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')

这确实很简单

之前只需对这两个函数进行标准化,并在同一个图中分别绘制它们

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)

你不能只是去比较它们。一种策略是将两者标准化为mu=0 sigma=1的高斯分布。也许这也可以帮助你比较发行版——这是一种更“奇特”的比较方式,而不是使用视觉效果。但最终它基本上也使用了标准法线。虽然它可以选择放置两个不同的发行版进行比较,这对您来说可能很有趣。谢谢,Ignacio。我不知道这个zmap!我也是,当时正在寻找如何标准化数组,发现了这一点,并认为这可能很有趣。