Praktikum 9
- Graafikud Pythonis. Võtke fail graafikud_python.tex ja lisage sinna Python+Matplotlib abil tehtud graafikud PDF-failidena. Abiks on
\begin{verbatim} . . . \end{verbatim}\begin{comment} . . . \end{comment}(vajab\usepackage{comment})\includegraphics[width=0.7\textwidth]{graafik.pdf}(vajab\usepackage[pdftex]{graphicx})- kompileerimise käsk:
pdflatex
Arvutiklassis python tuleb käivitada kujul: "c:\Program Files\Anaconda3\python.exe" fail.py
Kui osutub, et Windowsi arvutis pole python'it eelinstaleeritud numpy ja matplpotlibiga, siis võib kasutada pythonit math.ut.ee serveril (logige Putty'ga sinna sisse). Selle serveri kodukaust ongi teie H: ketas. Siin python'it saab käivitada lihtsalt käsuga python. Kuna server pole seotud teie display'ga, siis matplotlibi peab importima nii:
import matplotlib as mpl
mpl.use('pdf')
import matplotlib.pyplot as plt
Vajalikke Pythoni käske:
- Vajalikke pakette lisamine:
import numpy as npedaspidi saab paketi numpy käske kasutadaimport matplotlib.pyplot as pltedaspidi saab kasutada plottimiskäske
- Funktsiooni defineerimine:
def f(x): return x**2defineerib funktsiooni {$f(x) = x^2$}f = lambda x : x**2defineerib funktsiooni {$f(x) = x^2$}def f(D): return [x**2 if x<=0 else np.cos(x) for x in D], kus D on järjend
x = np.arange(-3, 3, 0.01)järjend {$(-3;-2{,}99;-2{,}98;\ldots;3)$}len(z)järjendi z elementide arvx = np.zeros(15)järjend, mis koosneb 15 nullistx = np.ones(15)järjend, mis koosneb 15 ühest
xv, yv = np.meshgrid(x, y)-xvonlen(x)×len(y)maatriks, mille read on kõikx;yvonlen(x)×len(y)maatriks, mille veerud on kõiky.x = np.sin(t)järjend, mille elemendid on t elementide siinusedplt.ylim([-5, 5])y-telje piirid- teljed keskele:
axes = plt.gca()
axes.spines['left'].set_position('center')
axes.spines['bottom'].set_position('center')
axes.spines['right'].set_color('none')
axes.spines['top'].set_color('none')
axes.xaxis.set_ticks_position('bottom')
axes.yaxis.set_ticks_position('left') - graafiku joonistamine:
plt.plot(x(t), y(t))parameetriline joonistamine (x(t)jay(t)peavad olema sama pikad järjendid)plt.contour(xv, yv, F(xv, yv), [0])punktihulk {$\{(x,y)\colon F(x,y) = 0\}$} (funktsioon ilmutamata kujul)
- 3d jooniste jaoks:
from mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()ax = fig.gca(projection='3d')ax.plot_surface(x(xv,yv),y(xv,yv),z(xv, yv))pinna {$z = f(x,y)$} joonistamineax.view_init(azim=245,elev=30)
plt.show()näitab graafikut aknasplt.savefig("gr5.pdf")salvestab graafiku
import numpy as np #edaspidi saab paketi numpy käske kasutada
import matplotlib.pyplot as plt #edaspidi saab kasutada plottimiskäske
def f1(x): return np.abs(x) #defineerib funktsiooni f1(x)=|x|
plt.title("Kahemõõtmelised") #joonise tiitel
plt.xlabel('x-telg') #teljede pealkirjad
plt.ylabel('y-telg')
plt.xlim([-2,2]) #graafikute akna suurus
plt.ylim([-0.5,1.5])
x=np.arange(-3,3,0.01) #defineerib määramispiirkonna x=[-3,3] sammuga 0.01
plt.plot(x,np.sin(f1(x)), #parameetriline joonistamine,joone värv, paksus, legend
'r',linewidth=3,label=r"$\sin|x|^3$")
plt.plot(x,1-x**2,'b--',label=r"$1-x^2$")
plt.legend(loc=0) #näitab legendi
plt.savefig("joon1.pdf") #määrab väljundfaili
plt.show() #näitab graafikut aknas

Kodus
Pythonis joonistamiseks on vaja tõmmata paketid numpy ja matplotlib.
Võimalused selleks:
1. Tõmmata selline Pythoni distributsioon, kus on kõik see olemas.
http://www.scipy.org/install.html
siin on need loetletud, klassi arvutites on Anaconda.
või
2. Tõmmata vajalikud paketid (numpy ja matplotlib) siit:
http://www.lfd.uci.edu/~gohlke/pythonlibs/
ning installida nad PIP abil. (Seal lehel on kirjeldatud.)
PIP on pythoni pakettide (laiend on .whl) installimisprogramm.