Ben histogramlar oluşturmak için matplotlib.pyplot kullanıyorum. Aslında bu histogramların grafikleriyle ilgilenmiyorum, ancak frekanslar ve kutularla ilgileniyorum (bunu yapmak için kendi kodumu yazabileceğimi biliyorum, ancak bu paketi kullanmayı tercih ederim). Ben aşağıdakileri yapabilirsiniz biliyorumHistogramı çizmeden matplotlib.pyplot ile histogram oluşturmanın herhangi bir yolu var mı?
,
import numpy as np
import matplotlib.pyplot as plt
x1 = np.random.normal(1.5,1.0)
x2 = np.random.normal(0,1.0)
freq, bins, patches = plt.hist([x1,x1],50,histtype='step')
bir histogram oluşturmak için. Tek ihtiyacım
freq[0]
,
freq[1]
ve
bins[0]
olduğunu. Ben denemek ve kullanırken sorun işlevinde,
freq, bins, patches = plt.hist([x1,x1],50,histtype='step')
oluşur. Örneğin,
def func(x, y, Nbins):
freq, bins, patches = plt.hist([x,y],Nbins,histtype='step') # create histogram
bincenters = 0.5*(bins[1:] + bins[:-1]) # center bins
xf= [float(i) for i in freq[0]] # convert integers to float
xf = [float(i) for i in freq[1]]
p = [ (bincenters[j], (1.0/(xf[j] + yf[j])) for j in range(Nbins) if (xf[j] + yf[j]) != 0]
Xt = [j for i,j in p] # separate pairs formed in p
Yt = [i for i,j in p]
Y = np.array(Yt) # convert to arrays for later fitting
X = np.array(Xt)
return X, Y # return arrays X and Y
Ben func(x1,x2,Nbins)
ve arsa veya baskı X
ve Y
aradığınızda, benim beklenen eğri/değerleri alamadım. Parçamda bir kısmi histogram olduğundan, plt.hist
ile ilgili bir şey olduğundan şüpheleniyorum.
Neden np.histogram kullanmayın()? – Pablo
Öneriniz için teşekkürler. Sorunun başka yerde olduğu anlaşılıyor. Yukarıdaki kod satırını satır olarak çalıştırırsam (işlev olarak değil) hem np.histogram() hem de plt.hist() ile çalışır. Bunu bir işlevde kullanmayla ilgili herhangi bir fikir çalışmıyor mu? – user1175720