Table of Contents

Cvičení 12, Quick test, náhodná čísla, grafický výstup

náplň cvičení

Quick test

Generování (pseudo)náhodných čísel

Princip LCG

Generování náhodných čísel v Pythonu

import random
 
for i in range(10):
   print(random.random())

import random
 
for i in range(10):
   print(random.randint(-10,10))

Vytváření jednoduché grafiky

Hlavní metodou je funkce matplotlib.pyplot.plt, ktera zobrazi vektor cisel:

from numpy import *
import matplotlib.pyplot as plt
x = arange(0.,10.,0.1)
y = sin(x)
plt.plot(y)
plt.show()

Všimněte si, ze výsledný graf je na ose 'x' číslován od 0 do 100, neboť to je velikost pole 'y'. Další možností je na zobrazit funkci sinus společně s osou 'x' definovanou dle pole 'x':

plt.plot(x,y)

Popisky os:

plt.xlabel('osa x')
plt.ylabel('osa y')

Samostatné úsečky: je třeba zadat pole počátečních x-ových a y-ových souřadnic.

plt.plot([x1,x2],[y1,y2],'k-');

Uložení obrázků do souboru: příkaz: savefig . Pro současné ulozeni obrázků do souboru a zobrazení je třeba volat savefig před příkazem show.

plt.savefig('jmeno.png')

Kreslení historgramu - příkaz hist

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
 
size = 10000
y = np.random.randn(size)
n, bins, patches = plt.hist(y, 50, normed=0, alpha=0.74)
plt.savefig('histogram1.png', dpi=600)
plt.show()

Poznámka: meze grafu lze určit i ručně příkazem axis

plt.axis([-5,5, 0, 0.5])

zobrazí graf na ose 'x' v rozsahu -5,5 a na ose 'y' v rozsahu 0 až 0.5.

Úkol 4: zobrazení histogramu

Kreslení fraktálů

Ukázky fraktálů. Příklad vykreslení Kochovy křivky.

Kresleni fraktalu

import numpy as np
import matplotlib.pyplot as plt
 
def drawBranch(x, y, length, angle):
    s = 0.7
    a1 = 0.15
    a2 = -0.15
    if (length < 0.3):
        return
 
    l2 = s*length
    x1 = x + l2*np.cos(angle)
    y1 = y + l2*np.sin(angle)
 
    plt.plot([x,x1],[y,y1], 'k-')
    drawBranch(x1,y1,l2, angle+a1)
    drawBranch(x1,y1,l2, angle+a2)
 
 
drawBranch(5,0,6,1.57)
 
 
plt.show()