GNU Octave/Tworzenie rysunków
Z Wikibooks, biblioteki wolnych podręczników.
Spis treści |
[edytuj] Tworzenie rysunków
[edytuj] Rysunki 2D
Rysunki dwuwymiarowe można tworzyć za pomocą funkcji plot. Najczęstsze użycie to:
plot(x, y)
Oba argumenty są wektorami tej samej długości i zawierają współrzędnych odpowiednio x-owe i y-owe.
Zatem plot dostaje ciąg punktów: Pi = (xi,yi) i rysuje linie: P1 − P2,...,Pn − 1 − Pn. Na przykład:
x=[0:1:10] y=sin(x) plot(x,y)
Dostajemy przybliżenie wykresu funkcji sinus.
Punkty domyślnie zostały połączone liniami i narysowane na czerwono. To można zmienić, np.
plot(x,y,"+b")
zaznaczy punkty znakami
i narysuje je na niebiesko. Żeby lepiej było widać chcemy też wyświetlić kratę punktów:
grid on
Dostępne kolory i ich oznaczenia:
| oznaczenie literowe | oznaczenie numeryczne | nazwa koloru |
|---|---|---|
| k | 0 | black |
| r | 1 | red (domyślny) |
| g | 2 | green |
| b | 3 | blue |
| m | 4 | magenta |
| c | 5 | cyan |
| w | 6 | brown |
Dostepne style to:
+ * o x - . @ -@
Wykresy można łączyć. Każdy z nich wówczas dobrze jest narysować innym kolorem i opisać w legendzie. Opis umieszcza się między dwoma średnikami, na przykład:
t = [0:0.1:10]; plot( t,cos(t),"-r;cos(t);", t,sin(t),"+m;sin(t);", t,tan(t),"xc;tan(t);", t,atan(t),"*g;argtan(t);" );
W tym wykresie funkcja tangens eksplotuje, więc przyda się jeszcze ograniczyć zakres osi:
axis( [0 10 -2 2] )
[edytuj] Rysunki 3D
Narysować domek za pomocą funkcji mesh.
mesh(x,y,z)
rysuje wykres dla punktów (xi,yj,zi,j). Zatem domek o kwadratowej podstawie [0,1]2, wysokości 1 i o dachu wysokości 1 można narysować za pomocą komendy:
mesh([0 0.5 1], [0 1], [1 2 1; 1 2 1 ])
Narysować za pomocą za pomocą funkcji mesh i meshgrid wykres funkcji
Przygotujmy brzegi:
x=[-1:0.1:1]; y=[-1:0.1:1];
Obliczamy wartości:
[X,Y]=meshgrid(x,y); Z=sin(X.*X.+2.*Y.*Y)
Rysujemy:
mesh(x,y,Z)
[edytuj] Zapis do pliku
Sposób zapisu do pliku zależy od wersji GNU Octave.
Jeśli rysujemy za pomocą Gnuplota, można to zrobić "niskopoziomowo" za pomocą __gnuplot_raw__:
__gnuplot_raw__("set term png \n");
__gnuplot_raw__("set output \"plik.png\" \n");
plot(...)
Wynikiem będzie "plik.png" w formacie PNG.
Inna metoda, już odradzana, to użycie funkcji gset
gset term postscript eps color gset output "plik.eps" plot(...)
[edytuj] Zaawansowany gnuplot
Z poziomu Octave'a można użyć zaawansowanych opcji Gnuplota. Wykonując
__gnuplot_raw__("polecenie\n");
to tak, jakbyśmy wykonywali polecenie w samym gnuplocie. Na przykład:
__gnuplot_raw__("set key off\n")
.![f: [-1,1]^2 \to \mathbb{R}](http://upload.wikimedia.org/math/1/e/4/1e4f270460aa311d14fdd76db003504e.png)
