Graficzna prezentacja wyników

Transkrypt

Graficzna prezentacja wyników
Graficzna prezentacja wyników
Wykonał:
ŁUKASZ BURDACH
ETI 9.3
Przy pierwszym wywołaniu funkcji rysującej wykres otwarte zostaje okno graficzne, które jest
potem wykorzystywane domyślnie (jest tzw. oknem aktywnym) przy kolejnych operacjach
graficznych; okno to jest opatrzone numerem 1. Aby otworzyć następne okno graficzne wystarczy
wywołać funkcję:
>> figure
Nowemu oknu zostaje przypisany kolejny numer i staje się ono oknem aktywnym. Przy kilku
istniejących oknach uaktywnienie okna o dowolnym numerze odbywa się równieŜ przy uŜyciu
funkcji:
>> figure(n)
Okna graficzne zamyka funkcja:
---
close – okno aktywne,
close(n) – okno o podanym numerze.
Wykresy funkcji jednej zmiennej
Podstawową funkcją słuŜącą do sporządzania wykresów jednej zmiennej jest funkcja plot.
Funkcja ta rysuje wykresy na podstawie przekazanych jej dwóch tablic zawierających współrzędne
x oraz y punktów np.:
>> x = -pi:0.1:pi;
>> y = sin(x);
>> plot(x,y);
% wektor argumentów funkcji
% wektor wartości funkcji
% rysowanie wykresu
Efektem wykonania podanego ciągu poleceń jest wykres funkcji sin(x) w przedziale <-π
π;π
π>, przy x
zmieniającym się co 0.1. Działanie funkcji plot polega na łączeniu odcinkami punktów o podanych
współrzędnych, przez co moŜna przy jej pomocy wykreślić
1
Efektem wykonania podanego ciągu poleceń jest wykres funkcji sin(x) w przedziale <-π
π;π
π>,
przy x zmieniającym się co 0.1. Działanie funkcji plot polega na łączeniu odcinkami punktów o
podanych współrzędnych, przez co moŜna przy jej pomocy wykreślić dowolną krzywą. Z
zasady działania funkcji wynika jeszcze jeden waŜny wniosek – im więcej współrzędnych
podamy, tym wykres będzie dokładniejszy.
Funkcja plot umoŜliwia takŜe rysowanie wielu krzywych na jednym wykresie. W tym przypadku
podać odpowiednią liczbę par tablic ze współrzędnymi punktów. Np. po wykonaniu poniŜszego
ciągu poleceń:
>> x = -pi:0.1:pi;
>> plot(x,sin(x),x,cos(x));
w jednym układzie współrzędnych zostaną wyświetlone wykresy funkcji trygonometrycznych
sin(x) oraz cos(x).
2
MoŜliwe jest takŜe określenie rodzaju i koloru linii, jaką mają być rysowane wykresy. W tym celu
naleŜy za kaŜdą parą wektorów współrzędnych umieścić jedno-, dwu- lub trzyznakowy łańcuch
zawierający:
----
kod koloru,
oznaczenie typu linii,
rodzaj znacznika umieszczanego w punktach danych.
Zestawienie dopuszczalnych znaków łańcucha moŜna uzyskać przy uŜyciu polecenia
help plot
Przykłady takich łańcuchów:
’y: linia Ŝółta, kropkowana, znak + w
+
punktach danych
’
’g- linia zielona, kreskowana
’
’ko linia czarna, kółka w punktach
’
danych
Rysowanie wykresów w skalach innych niŜ liniowa umoŜliwiają funkcje:
----
loglog – w skali logarytmicznej na obu osiach,
semilogx – w skali logarytmicznej na osi odciętych,
semilogy – w skali logarytmicznej na osi rzędnych.
Przedstawione funkcje mogą słuŜyć do rysowania dowolnych krzywych, niekoniecznie wykresów
funkcji. Dla wygodnego i precyzyjnego rysowania wykresów zaleŜności funkcyjnych stworzono
funkcję fplot. Funkcja ta automatycznie dobiera punkty, w których naleŜy obliczyć wartość funkcji, w
taki sposób, aby wykres był dokładny, uwzględniał dynamikę zmian wartości funkcji oraz nie wymagał
nadmiernej ilości obliczeń. Oto kilka moŜliwych postaci jej wywołania:
fplot(fun,lims)
fplot(fun,lims,n)
[x,y] = fplot(fun, ...)
gdzie:
fun – łańcuch znaków zawierający definicję funkcji lub nazwę pliku z funkcją,
lims – dwuelementowy wektor zawierający granice przedziału argumentów funkcji.
Dodatkowe, opcjonalne argumenty to np. n – liczba określająca minimalną liczbę punktów,
uwzględnianych przy sporządzaniu wykresu (domyślnie n = 25). Funkcja wywołana w trzeciej z
podanych postaci nie rysuje wykresu, ale zwraca dwa wektory, na podstawie których za pomocą
funkcji plot tworzymy wykres funkcji.
Uzupełnianie wykresów
Wykresy moŜna uzupełniać odpowiednimi opisami, przy których podaje się:
-
nazwy zmiennych reprezentowanych na poszczególnych osiach układu współrzędnych,
zaleŜność, jaka została na nim przedstawiona.
3
Do opisywania wykresów słuŜą funkcje:
xlabel(’text’)
xlabel(’text’, ’Property1’,
PropertValue1, ...)
wypisanie łańcucha text pod osią odciętych, druga
postać
wywołania
umoŜliwia
ustawienie
parametrów tekstu: rozmiaru czcionki, stylu
czcionki, kąta pisania
ylabel(’text’)
ylabel(’text’, ’Property1’,
PropertyValue1, ...)
j.w. dla osi rzędnych
title(’text’)
tytuł rysunku, dodany na górze
text(x,y,’text’)
wstawienie tekstu w
współrzędne x, y
legend(’text1’,’text2’, ..)
umieszcza legendę na wykresie, uŜywając do tego
podanych tekstów
miejscu
określonym
przez
Kolejny element, którym moŜna uzupełnić wykres jest pomocnicza siatka współrzędnych.
Nanoszenie lub usuwanie siatki jest realizowane za pomocą funkcji grid:
grid
on
wyświetlenie siatki
grid
off
usunięcie siatki
grid
przełączenie wyświetlania
siatki
JeŜeli zajdzie potrzeba, aby do juŜ narysowanego wykresu dołoŜyć następny, naleŜy przed
jego sporządzeniem uŜyć funkcji hold:
hold
on
zapobiega
usunięciu
poprzednich
narysowaniem nowego
hold
off
przywraca standardowy tryb pracy tj. czyszczenie okna
graficznego przed narysowaniem nowego wykresu
hold
zmiana aktualnego trybu na przeciwny
wykresów
przed
4
Zmiana skali
Funkcja rysowania wykresu automatycznie ustala skalę, w jakiej wykres jest rysowany.
Skalę moŜna zmienić za pomocą funkcji axis. Jej wywołanie w postaci:
axis([xmin xmax ymin ymax])
określa zakres skal na poszczególnych osiach układu współrzędnych. Wywołana bez
parametru zwraca aktualne wartości tych zakresów. Dalej, występuje teŜ grupa argumentów
podawanych w postaci łańcucha, które zmieniają tryby skalowania rysunku. Np. funkcja
axis wywołana w następujący sposób:
axis(’square’)
Matlab pozwala na uŜywanie kilku okien graficznych i wyświetlanie wykresów w osobnych oknach.
Czasami jednak wygodne jest umieszczanie kilku wykresów w osobnych układach współrzędnych w
jednym oknie. UmoŜliwia to funkcja:
subplot(m,n,p)
gdzie:
m – liczba wykresów, które mają zmieścić się w pionie (1..9),
n – liczba wykresów, które mają zmieścić się w poziomie (1..9),
p – numer wykresu, który zostanie narysowany przy kolejnym wywołaniu funkcji rysującej wykres;
wykresy są numerowane wzdłuŜ kolejnych wierszy od lewej do prawej
Uaktywnienie wybranego układu w oknie jest realizowane poprzez wywołanie funkcji subplot w
poprzedniej postaci – przy takich samych, jak w pierwszym wywołaniu, wartości argumentów m i n.
Po wykonaniu skryptu zawierającego następujący ciąg poleceń:
x = -2*pi:0.01:2*pi;
subplot(2,2,1);
plot(x,sin(x));
subplot(2,2,2);
plot(x,cos(x));
subplot(2,2,3);
plot(x,sin(x)./x);
subplot(2,2,4);
plot(x,2*x);
zawartość okna graficznego będzie taka jak na poniŜszym rysunku.
5
Inne wykresy na płaszczyźnie
Oprócz wykresów w prostokątnym układzie współrzędnych moŜliwe jest sporządzanie wykresów:
-
w biegunowym układzie współrzędnych (funkcja polar),
wykres ruchomy imitujący ruch komety (funkcja comet),
wykres funkcji przy jednoczesnym zaznaczaniu podanych przez uŜytkownika odchyleń (funkcja
errorbar).
Wykresy danych dyskretnych
W Matlabie istnieje równieŜ moŜliwość przedstawiania danych dyskretnych w formie:
-
wykresu słupkowego (funkcja bar),
wykresu podobnego do wykresu słupkowego, w którym słupki są zastępowane odcinkami
„wychodzącymi” z osi odciętych i zakończonymi kółeczkami (funkcja stem),
wykresu schodkowego (funkcja stairs),
histogramu, czyli wykresu obrazującego liczbę elementów danego zbioru danych zawartych w
określonych przedziałach (funkcje: hist, rose – histogram kołowy).
6
Wykresy trójwymiarowe
Większość funkcji Matlaba generujących wykresy trójwymiarowe słuŜy do wykreślania powierzchni. Matlab
definiuje powierzchnię jako współrzędne punktów opartych na siatce na płaszczyźnie x-y uŜywając linii
prostych do połączenia sąsiadujących punktów.
Przy sporządzaniu wykresu funkcji dwóch zmiennych
z = f(x,y)
najpierw generuje się tablice X oraz Y, których elementy są współrzędnymi: x i y węzłów siatki. Wiersze
tablicy X są kopiami wektora x (jest ich length(y)), natomiast kolumny tablicy Y są kopiami wektora y
(jest ich length(x)). Współrzędne te są następnie wykorzystywane do obliczenia wartości funkcji i
wyświetlenia jej wykresu. Sporządźmy np. wykres funkcji:
dla x i y w przedziale <-π
π,π
π>, zmieniających się np. co 0.2. W tym celu naleŜy wykonać następujący ciąg
poleceń:
>> [X,Y] = meshgrid(-pi:0.2:pi,-pi:0.2:pi); % współrzędne
>> Z = sin(X).*sin(Y).*exp(-X.^2–Y.^2);
% wartości funkcji
>> mesh(X,Y,Z);
% wykres
Zawartość okna graficznego będzie taka jak na poniŜszym rysunku:
7
Do opisywania wykresów trójwymiarowych stosowane są te same funkcje, które słuŜą do umieszczanie
napisów na wykresach dwuwymiarowych. Funkcje xlabel oraz ylabel umieszczają etykiety na osiach
płaszczyzny poziomej. Dodatkowa funkcja – zlabel – słuŜy do opisywania osi z. Teksty w określonym
miejscu wstawia się takŜe za pomocą funkcji text.
Istnieją teŜ trójwymiarowe odpowiedniki funkcji uŜywanych do rysowania wykresów w dwóch
wymiarach. Np. odpowiednikiem funkcji plot jest funkcja plot3, która rysuje łamaną łączącą punkty,
których współrzędne stanowią odpowiadające sobie elementy wektorów wejściowych. Np. spirala w
przestrzeni zostanie narysowana po wykonaniu następujących poleceń:
>> t = pi:pi/18:20*pi;
>> plot3(sin(t),cos(t),t);
KONIEC
8