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