Kilka słów o funkcjach ezplot, plot i fplot.

Wykresy funkcji jednej zmiennej będziemy wykonywać na dwa sposoby: za pomocą funkcji ezplot i plot lub fplot. Funkcje te przyjmują wiele różnych rodzajów parametrów, o czym można poczytać w helpie.



Zadanie (1)

Wypróbuj następujące komendy:



>> ezplot('x^2-2*x+1')

>> ezplot('sin(x^2)',[0,pi])



Drugi wykres pojawi się w tym samym oknie co pierwszy, nadpisując go. Aby tego uniknąć, spróbuj:



>> figure

>> ezplot('x^2-2*x+1')

>> figure

>> ezplot('sin(x^2)',[0,pi])

>> ezplot('sin(t)','cos(t)',[0,pi])                    % parametrycznie: x=cos(t), y=sin(t)

>> fh = @(x,y) sqrt(x.^2 + y.^2 – 1);         % okrąg o promieniu 1

>> ezplot(fh)

>> axis equal                                                    % osie mają mieć te same proporcje

>> ezplot('x^2-y^4')

>> colormap([0 0 1])                                      % poczytaj o colormap w helpie i przetestuj inne kolory

>> legend('wykresik')

>> ezplot('sin(x)')

>> hold on                                                          % hold on pozwoli narysować kolejne elementy na

                                                              % bieżącym rysunku bez kasowania poprzednich elementów

>> quiver(-7,0,1,0,14,'LineWidth',2);            % polecenie quiver(x,y,u,v,t) rysuje wektor o

>> text(7.1,0,'x')                                             % współrzędnych [u,v] zaczepiony w punkcie (x,y)

>> quiver(0,-5,0,1,10,'LineWidth',2);            % mający długość t, domyślna grubość linii to 1

>> text(0,5.1,'y')                                             % text(x,y,'napis') – daje napis w punkcie (x,y)

>> axis equal

>> hold off                                                          % kolejne elementy zniszczą poprzedni rysunek

>> ezplot('sin(x)');                                            % inny sposób na osie – polecenie line

>> line([-2*pi 2*pi],[0 0],'color','g');

>> line([0 0],[-1.5 1.5],'color','g');



Przypatrz się opcjom w menu okienka wykresowego – zapisz któryś z wykresów do pliku graficznego *.jpg lub *.eps (np. w celu późniejszego wykorzystania w latex'u).

 

Użycie funkcji plot lub fplot jest zwykle bardziej skomplikowane, ale też efekty wizualne prezentują się lepiej. Zapamiętaj następujące style (lub chociaż zapamiętaj, gdzie można je znaleźć):

Kolory Symbole punktów Rodzaje linii

y – yellow

m – magenta

c – cyan

r – red

g – green

b – blue

w – white

k – black

. – punkt

o – kółko

x – iks

+ – plus

* – gwiazdka

s – kwadrat

d – romb

v – trójkąt w dół

^ – trójkąt w górę

< – trójkąt w lewo

> – trójkąt w prawo

p – pięciokąt

h – sześciokąt

- ciągła

: kropkowana

-. kropka-kreska

-- kreskowana

Specyfikację można uzupełnić o dodatkowe parametry linii i znaczników:

  • MarkerEdgeColor ‐ kolor krawędzi znacznika w przypadku znaczników wypełnianych,

  • MarkerFaceColor ‐ kolor wypełnienia znacznika,

  • MarkerSize ‐ rozmiar znacznika (w pkt),

  • LineWidth ‐ grubość linii (w pkt).

Polecenie axis ustawia parametry osi bieżącego wykresu. Może mieć argumenty:

  • axis on/off ‐ wyświetlenie lub ukrycie osi,

  • axis equal ‐ zrównanie jednostek na osiach,

  • axis square ‐ wykres na obszarze kwadratowym,

  • axis normal ‐ usuniecie działania equal i square,

  • axis auto/manual ‐ włączenie lub wyłączenie automatycznego doboru podziałki na osiach,

  • axis state ‐ zwraca informacje o ustawieniach osi.,

  • axis(xmin xmax ymin ymax (zmin zmax)) ‐ określenie ręczne zakresów osi. Zastąpienie wybranych parametrów (np. xmin lub xmax) stałymi Inf lub Inf daje możliwość półautomatycznego określania zakresów osi.

Zadanie (2)

Wypróbuj następujące komendy:



>> p=rand(1,10)              % ciąg 10 losowych liczb z przedziału (0,1)

>> plot(p,'b')                     % na niebiesko, połączone ze sobą

>> plot(p,'bs')                   % na niebiesko, oznaczone kwadratami

>> plot(p,'bs:')              % na niebiesko, oznaczone kwadratami i połączone kropkowaną linią



% tak nie powinno się rysować funkcji – trzeba pamiętać o gęstym próbkowaniu dziedziny,

% żeby wykres nie wyszedł „kanciasty”

>> t = [-pi:pi/5:pi]; plot(sin(t))

>> t = [-pi:pi/100:pi]; plot(sin(t))

>> fplot('2*sin(x)',[0,2*pi])                 % w fplot podajemy dziedzinę, a nie „co ile próbkować”

>> fplot('2*sin(x)',[0,2*pi],'r.-')          % styl linii podajemy na końcu



% rysowanie kilku wykresów w jednym oknie:

>> dwieFunkcje = @(x) [sin(x),x^2];

>> fplot(dwieFunkcje, [-2*pi,2*pi])



% inny sposób na kilka wykresów w jednym oknie:

>> figure

>> fplot('sin(x)',[-2*pi,2*pi],':b')

>> hold on

>> fplot('sin(x*x)',[-2*pi,2*pi],'-r')

>> hold off



% jeszcze inny sposób na kilka wykresów (uwaga - różne dziedziny!):

>> dz = -5*pi:pi/100:pi;               % dziedzina funkcji z

>> z = sin(t)./t;

>> dy = -pi:pi/100:2*pi;               % dziedzina funkcji y

>> y = cos(x);

>> plot(dz,z,dy,y);

>> plot(dz,z,'r*:',dy,y,'y-')           % to samo z różnymi stylami dla każdej funkcji

>> xlabel('to są iksy')

>> ylabel('sinusy różne')

>> title('Moj wykres')



% kolejny fajny przykład:

>> t = 0:pi/100:2*pi;

>> y = sin(t);

>> y1 = sin(t-0.25);

>> y2 = sin(t-0.5);

>> plot(t,y,'-r',t,y1,'c--',t,y2,':');                  % tutaj wszystkie funkcje mają te same dziedziny

>> legend('wykres 1','i drugi','ostatni')         % przykład złożonej legendy



% a to jest już przerost formy nad treścią:

>> t = 0:pi/20:2*pi;

>> plot(t,sin(t.^2),'-mo',...           % trzy kropki oznaczają mniej więcej tyle: „to polecenie jest tak

'LineWidth',2,...                                  % długie, że pogubiłbym się wpisując je w jednej linii, więc

'MarkerEdgeColor','m',...                   % wolę rozdzielić je na kilka linii dla większej przejrzystości

'MarkerFaceColor',[0.63 , 1 , 0.49 ],...

'MarkerSize',9)



% przykład z siatką

>> fplot('sin(x)',[-2*pi,2*pi],':b')

>> grid on                     % włączanie siatki

>> grid off                     % i wyłączanie

 

W powyższym ćwiczeniu pojawiła się opcja

'MarkerFaceColor',[0.63, 1, 0.49 ]

- te trzy liczby oznaczają składowe koloru w formacie RGB (red, green i blue). W programach graficznych jesteśmy przyzwyczajeni do podawania tych składowych w formie liczb całkowitych od 0 do 255. Natomiast w MATLABie należy podać liczby od 0 do 1. Jak to przeliczamy? Przykładowo, kolor RGB(124,55,39) będzie miał współrzędne [124/255, 55/255, 39/255].



Zadanie (3)

Wypróbuj następujące komendy:



>> t = (-5:0.2:5)*pi;

>> y = sin(t)./t;

>> bar(t,y)                               % wykres słupkowy

>> stem(t,y)                           % wykres łodyżkowy

>> stairs(t,y)                     % wykres schodkowy

>> y = randn(1,1000);

>> hist(y)                                % histogram

>> x=-pi:0.1:pi;

>> area(x,sin(x))                  % wykres z zaznaczonym polem

>> x = [1,3,0.5,2.5,2];

>> pie(x)                                 % wykres kołowy

>> pie(x,[0,1,0,0,1])            % wykres kołowy z informacją, które kawałki wyodrębnić

 

Ostatnia modyfikacja: wtorek, 2.07.2013, 21:06 PM