Praktikum 10
- 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
või kujul: "c:\Program Files\Python39\python.exe" fail.py
.
Paketid saab installida käsuga "c:\Program Files\Python39\Scripts\pip.exe" install numpy matplotlib
Kui osutub, et Windowsi arvutis pole python
'it eelinstaleeritud numpy ja matplpotlibiga, siis võib kasutada pythonit newmath.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 np
edaspidi saab paketi numpy käske kasutadaimport matplotlib.pyplot as plt
edaspidi saab kasutada plottimiskäske
- Funktsiooni defineerimine:
def f(x): return x**2
defineerib funktsiooni {$f(x) = x^2$}f = lambda x : x**2
defineerib 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)
-xv
onlen(x)
×len(y)
maatriks, mille read on kõikx
;yv
onlen(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 nullpunkti:
axes = plt.gca()
axes.spines['left'].set_position('zero')
axes.spines['bottom'].set_position('zero')
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 Axes3D
fig = plt.figure()
ax = fig.add_subplot(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.close()
sulgeb graafiku aknaplt.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
Abiks on: PDF
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.