Matplotlib
Web stranica: http://matplotlib.org/
%matplotlib
je jedna od magičnih funkcija, više o njima možete pročitati ovdje.
Ako se ne želi da se prostor imena varijabli napuni funkcijama iz Matplotliba, obično se koristi
Učitat ćemo i paket seaborn da bi (jednostavnije) poboljšali predefinirani izgled slika.
Matplotlib ima API koji je dizajniran da nalikuje funkcijama za grafiku iz MATLAB-a.
Taj način pisanje je dobar za jednostavne stvari, ali za kompleksnije primjere bolje je koristiti Matplotlib objektno sučelje. U sljedećem primjeru ćemo nacrtati istu sliku, ali ćemo sliku spremiti u fig
varijablu.
Kod jest malo kompliciraniji, ali sada možemo lako modificirati sliku.
Ako ne želimo sami definirati mjesta za podslike, možemo korisititi (kao što smo već viđali) subplots
:
Oznaka za y os dodiruje prvu sliku, što nije lijepo.
Koristeći fig.tight_layout
metodu, koja automatski namješta da se tako što ne dogodi, lako riješavamo taj problem.
Veličina slike, rezolucija
figsize
je par (širina, visina) u inčima, a dpi
je rezolucija u točkama (pikselima) po inču.
Spremanje slika
Ili s više parametara:
Koje formate možemo koristiti? Sve osnovne: PNG, JPG, EPS, SVG, PDF. PDF je vrlo praktičan format za uključivanje u PDF dokumente (recimo one kreirane u u).
Naslovi
Koordinatne osi
Legende
Ovo je malo nespretno jer trebamo voditi računa o tome kad se koja krivulja ubacila u sliku. Bolje je biti eksplicitan:
Lokacija legende se isto može definirati, za detalje vidi http://matplotlib.org/users/legend_guide.html#legend-location:
Primjer:
Formatiraje teksta,
Stavljamo r
ispred stringa da kažemo Pythonu da ćemo koristiti raw string. Inače bi, kako je \ escape znak u Pythonu, morali paziti na takve stvari.
Parametre koje ćemo uvijek koristiti možemo definirati kao globalne:
Boje
Ali boje se mogu i puno preciznije definirati kao u HTML-u.
Za još više detalja vidi: http://matplotlib.org/api/ticker_api.html.
Možemo imate koordinatne osi na svakoj strani pomoću twinx
i twiny
funkcija:
Tipični izgled grafa u (teorijskoj) matematici:
Osim funkcije plot
, postoje i druge funkcije. Galeriju možete pogledati ovdje. Neke od njih ćemo prikazati dolje.
Za ubacivanje tekst u sliku koristimo text
funkciju. Ona podržava :
subplot2grid
gridspec
Pomoću add_axes
je jednostavno ubacivate manje slike u veće.
pcolor
imshow
contour
3D
Plohe
Pomoću view_init
funkcije možemo definirati iz koje točke gledamo objekt. Parametri su kut elevacije i azimut:
Animacije
Matplotlib nudi jednostavan API za animaciju. Funkcija FuncAnimation
generira film kao niz slika.
(Neki) parametri:
fig
slika koje će se animirati,animate
funkcija s kojom mijenjamo sliku,init_func
funkcija za postavu,interval
koliko milisekundi između dca frame-a,blit
postavka da se mijenjaju samo promijenjeni dijelovi slike.
Primjer upotrebe ćemo vidjeti u nastavku.
S funkcijom save
spremamo animaciju.
Modul je matplotlib.animation
.
Generiranje animacije:
Zadaci za vježbu
Napišite funkciju koja za ulazni parametar prima niz brojeva te crta odgovarajuće krivulje na istoj slici (ovdje je ). Neka je za svaku krivulju.
Modificierajte prethodnu funkciju tako da izračunate ekstremalne vrijednosti za i osi te prilagodite tim podacima izgled slike.
Nacrtajte plohu .
Animirajte aproksimaciju funkcije Taylorovim polinomima. Naprimjer za funkciju .
Vizualizirajte numeričku integraciju (uputa: pogledajte što radi Matplotlibova funkcija
fill_between
).
Nacrtajte sljedeću sliku