Ebben a Notebookban bemutatjuk a hogyan kell adatfájlokat beolvasni/kimenteni, hisztogramokat készíteni, logaritmikus tengelyeket beállítani.
%pylab inline
figsize(6,6) #Képméret megváltoztatása
A numpy
csomag segítségével lehetőség van adatfájlok beolvasására változókba, illetve változók adatait kimenteni fájlokba.
Adatok beolvasását a numpy
loadtxt
parancsa teszi lehetővé. Számos kapcsolója van, melyekkel megadható, hogy mi az oszlopelválasztó karakter, melyik oszlopot akarjuk beolvasni stb.
figsize(7,7)
data=loadtxt("sinusadatok.dat")
print(type(data))
print(ndim(data))
print(data)
plot(data)
x=data[:,0]
print(x[0:10])
y=data[:,1]
z=data[:,2]
plot(x,y, label="sinus")
plot(x,z, label="1,5*cosinus+3")
legend(loc='best') # Ábrafelirat elhelyezése
Adatokat (listákat, tömböket) a savetxt
paranccsal lehet.
x = arange(0.0,5.0,1.0) # hozzuk létre x,y és z listát
y = arange(0.0,5.0,1.0)
z = arange(0.0,5.0,1.0)
savetxt('adat.csv', x, delimiter=',') # Mentsük le x-t mint egy vektort
savetxt('adat1.csv', (x,y,z)) # Mentsük el 2Dimenziós vektorként
#az x,y,z-t (egymás alá írva őket)
savetxt('adat2.csv', x, fmt='%1.4e') # Formatban megadható a kiírt adatok formátuma
# használhatunk exponenciális alakot a fájlban
xx=loadtxt("adat.csv", delimiter=',')
plot(xx)
yy=loadtxt("adat1.csv",)
print(yy)
plot(yy)
zz=loadtxt("adat2.csv")
print(zz)
Ehhez használni kell hist
függvényt matplotlib.pyplot
csomagból.
3 objektuma van a hist
függvénynek:
# Legyen egy adatsorunk normál eloszlású
mu, sigma = 2, 0.5 # átlaga 2, szórásnégyzete 0.5
v = random.normal(mu,sigma,10000) # Készítsünk egy 10000 elemű véletlen számsort
print(v)
hist(v, bins=50) # Készítsünk 50 binből álló hisztogramot (matplotlib-el)
# show()
mu, sigma = 100, 15
x = mu + sigma * random.randn(10000)
n, bins, patches = hist(x, 50, normed=1, facecolor='g', alpha=0.75)
xlabel('Smarts')
ylabel('Probability')
title('Histogram of IQ')
text(60, .025, r'$\mu=100,\ \sigma=15$', fontsize=15) # Szöveg elhelyezése az ábrában (x,y helyen)
axis([40, 160, 0, 0.03])
grid(True) # rács megjelenítése
# show()
mu, sigma = 100, 15
x = mu + sigma*random.randn(10000)
# oszlopdiagram készítése
n, bins, patches = hist(x, 50, normed=1, facecolor='green', alpha=0.75)
# adjuk hozzá a numerikus görbét
y = normpdf( bins, mu, sigma)
l = plot(bins, y, 'r--', linewidth=3)
xlabel('Smarts')
ylabel('Probability')
title(r'$\mathrm{Histogram\ of\ IQ:}\ \mu=100,\ \sigma=15$')
axis([40, 160, 0, 0.03])
grid(True)
# show()
figsize(15,10)
# 0 és 1 közötti számok generálása, majd sorba rendezzük a "sort" paranccsal
y = random.normal(loc=0.5, scale=0.4, size=1000)
y = y[(y > 0) & (y < 1)]
y.sort()
x = arange(len(y)) # x legyen az y lista hosszával megegyező másik lista
# lineáris tengelyek (default)
subplot(221)
plot(x, y)
yscale('linear')
title('linear')
grid(True)
# log x tengely
subplot(222)
plot(x, y)
xscale('log')
title('x-log')
grid(True)
# log y tengely
subplot(223)
plot(x, y)
yscale('log')
title('y-log')
grid(True)
# loglog
subplot(224)
plot(x, y)
xscale('log')
yscale('log')
title('log-log')
grid(True)