Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.
199/655
Na této stránce najdete návody a poznámky k velice zajímavým knihovnám Matplotlib Numpy a Scipy. Pro návody je použit IPython, IPython notebook a IPython notebook viewer. Návody jsou vlastní i převzaté. Pro váš přehled doporučuji nejprve projít následující odkazy na dokumentaci:
Obsah:
Pro tvorbu zdejších příkladů jsem použil IPython, který mi automaticky
(pomocí příkazu %pylab
) importuje všechny potřebné knihovny. Pokud chcete
zde uvedené příklady použít mimo tento interpret budete muset provést
import knihoven.
Já to ve svých skriptech dělám následujícím způsobem:
import numpy as num
import scipy as sci
import pylab as lab
from pylab import pi, e
`--> stáhnout
Potom můžu ve svých programech dělat něco jako:
print pi
v = e**3
`--> stáhnout
nebo
t=num.linspace(0,10,50)
u=num.sin(2*pi*0.5*t+pi/6.)
lab.plot(t,u)
lab.show()
`--> stáhnout
Také je myslím velice důležité říct, že IPython je při tvorbě příkladů nastaven pro interaktivní práci a grafy se zobrazují interaktivně -- tedy automaticky.
Pokud se rozhodnete zapsat příkazy do skriptu je třeba zavolat pro zobrazení
grafu nebo grafů metodu show()
lab.show()
`--> stáhnout
Pro sazbu řeckých písmen a vzorců je používán systém TeX (LaTeX). Aby bylo možné sázet vzorce a řecká písmena je nutné mít ho
nainstalovaný. Pokud ho nainstalovaný nemáte (to se týká hlavně uživatelů OS
rodiny Windows) nepoužívejte konstrukce, které v příkladech vidíte uzavřené
mezi znaky $
. Například:
title(r'$u_1=\sin(2\pi ft)$')
`--> stáhnout
$u_1=\sin(2\pi ft)$
1 #!/usr/bin/env python
2 # -*- coding: utf8 -*-
3 # Soubor: interpolace.py
4 # Datum: 14.02.2013 13:11
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: několik poznámek k intepolacím
8 # http://docs.scipy.org/doc/scipy/reference/interpolate.html
9 # http://docs.scipy.org/doc/scipy/reference/tutorial/integrate.html
10 ###################################################3
11 import matplotlib as mpl
12 mpl.use('GTKAgg')
13 mpl.use('Qt4Agg')
14 mpl.rc('font', family = 'serif', serif = 'cmr10')
15 mpl.rcParams['text.usetex']=True
16 mpl.rcParams['text.latex.unicode']=True
17
18 #import numpy as num
19 import scipy.interpolate as interpol
20 import pylab as lab
21 from pylab import pi
22 #interactive mode
23 #lab.ion()
24 #lab.ioff()
25
26 x= "0 0.3 0.5 0.8 1 2 3".split()
27 y= "0 0.1 0.5 1 3 10 30".split()
28 # z řetězců čísla
29 x=map(float,x)
30 y=map(float,y)
31
32 lab.figure(1)
33 lab.title('Interpolace')
34 lab.plot(x,y,'ro',label='vzorky')
35 lab.grid()
36 lab.xlim([min(x)-1,max(x)+1])
37 lab.ylim([min(y)-1,max(y)+1])
38
39 newX = lab.linspace(min(x), max(x),300)
40 # spline
41 newY = interpol.spline(x,y,newX)
42 lab.plot(newX,newY,label='spline')
43
44 # UnivariateSpline
45 funkce=interpol.UnivariateSpline(x,y,s=0)
46 newY=funkce(newX)
47 lab.plot(newX,newY,label='UnivariateSpline s=0')
48
49 funkce=interpol.UnivariateSpline(x,y)
50 newY=funkce(newX)
51 lab.plot(newX,newY,label='UnivariateSpline')
52
53 #LSQUnivariateSpline
54 funkce = interpol.LSQUnivariateSpline(x,y,[0.5, 0.8])
55 newY = funkce(newX)
56 lab.plot(newX,newY,label='LSQUnivariateSpline',alpha=0.5)
57
58 # interp1d
59 # ( linear , nearest , zero , slinear , quadratic, cubic )
60 funkce = interpol.interp1d(x,y, kind='quadratic')
61 newY = funkce(newX)
62 lab.plot(newX,newY,label='interp1d quadratic',alpha=0.5)
63 # interp1d
64 # ( linear , nearest , zero , slinear , quadratic, cubic )
65 funkce = interpol.interp1d(x,y, kind='nearest')
66 newY = funkce(newX)
67 lab.plot(newX,newY,label='interp1d nearest',alpha=0.5)
68
69 lab.legend(loc='best')
70 lab.show()
`--> stáhnout