Rajzolás (plotting) Pythonban

A Matplotlib egy átfogó könyvtár statikus, animált és interaktív vizualizációk létrehozásához a Pythonban. Számtalan tutoriál hozzáférhető, amelyek az alaptól a profi szintig ismertetik a használatát. A matplotlib.pyplot részmodul olyan függvények gyűjteménye, amelyek a matplotlib-et úgy működtetik, mint a MATLAB. Minden pyplot függvény változtat valamit az ábrán: például létrehoz egy ábrázolási területet, néhány vonalat rajzol, felcímkézi az ábra elemit, stb.

Feladat: Másoljuk az alábbi kódot egy 4test.py nevű fájlba, majd futtassuk a python3 4test.py 4 paranccsal.

import matplotlib.pyplot as plt
import random
import sys

def my_plot():
    """
    Plotting n random values.
    n is read in from the terminal.
    """

    n = int(sys.argv[1])

    list1 = range(n)
    list2 = [random.random() for _ in range(n)]
    list3 = [i**2 for i in list2]

    plt.subplot(311)
    plt.bar(list1,list1)
    plt.subplot(312)
    plt.bar(list1,list2)
    plt.subplot(313)
    plt.bar(list1,list3)
    plt.show()

def main():
    my_plot()

if __name__ == "__main__":
    main()

A math modul

A faktoriális, binomiális együttható, exponenciális függvény számításához használhatjuk a math modult:

A binomiális együttható kiszámítására szolgáló math.comb() függvény csak a Python 3.8 verziótól létezik. Ezért régebbi Pythont futtató gépen (pl. az intézeti szerveren a jupyter 3.6-ost futtat) vagy frissítsük a Pythont vagy írjunk saját comb függvényt:

Feladat: Számítsuk ki annak valószínűségét, hogy 10-szer feldobva egy kockát, pontosan kétszer kapunk 6-ost, majd közelítsük meg ezt a valószínűséget Poisson-eloszlással számolva!

4. Binomiális eloszlás (határidő 2021-10-09 szombat 20:00)

E feladatban három oszlopdiagramot kell kirajzolni egyetlen ábrában, minden részábra fölött egy-egy címmel. Az első ábra egy $(n,p)$ paraméterű binomiális eloszlás valószínűségeloszlását mutatja (címe „Binomiális eloszlás”), a második ábra e binomiális eloszlást szimulálva tapasztalati valószínűségeloszlást mutat (címe „Binomiális eloszlás szimulációja 1000 kísérletből”), míg a harmadik ábra a binomiális eloszlást közelítő $\lambda=n\cdot p$ paraméterű Poisson-eloszlás valószínűségeloszlásának első $n+1$ oszlopát ábrázolja (címe „Binomiális eloszlás közelítése Poisson-eloszlással”).

A program eredményeként valami hasonló ábrát fogunk kapni (a színek, skálázás,... nem lényeges része a feladatnak):

title

A program bemenete $n$, $p$, $k$, ahol $n$ és $p$ a binomiális eloszlás paraméterei, és $k$ a szimulációk száma. A program például parancssorból így indítható:

python3 4KovacsJutka.py 12 0.3 1000