Graficzna prezentacja wyników
w MATLABIE
Dr inż. Mirosław Kwiesielewicz
Wydział Elektrotechniki i Automatyki
Politechnika Gdańska
email: mkwies@ely.pg.gda.pl
url: http://www.ely.pg.gda.pl/~mkwies/
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
2
Obiekty graficzne
Każdy rysunek bądź wykres składa się z
szeregu obiektów graficznych
Każdy obiekt posiada atrybuty, które może
ustawiać użytkownik
Struktura obiektów jest hierarchiczna
Dwa poziomy prezentacji graficznej
funkcje grafiki dwu- i trójwymiarowej
wysokiego poziomu
funkcje graficzne niskiego poziomu
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
3
Podstawowe funkcje graficzne
Funkcje tworzące wykres
plot - skala osi x i y liniowa
loglog - skala osi x i y logarytmiczna
semilogx - skala osi x logarytmiczna, y
liniowa
semilogy - skala osi x liniowa, y
logarytmiczna
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
4
Podstawowe funkcje graficzne
Funkcje definiujące wykres
title - dodaje tytuł do utworzonego wykresu
xlabel - dodaje etykietę opisującą oś x
ylabel - dodaje etykietę opisującą oś y
text - umieszcza tekst w wybranym miejscu
wykresu
gtext - umieszcza tekst w wybranym
miejscu wykresu przy pomocy myszy
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
5
Podstawowe funkcje graficzne
Funkcje definiujące wykres
legend - umieszcza legendę na wykresie
axis - przeskalowuje osie wykresu
grid - dodaje siatkę współrzędnych do
wykresu
zoom - umożliwia zmianę wielkości
wybranego miejsca wykresu
hold - umożliwia dodanie kolejnych
krzywych do wykresu
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
6
Przykład tworzenia wykresu
Wykres dwóch funkcji trygonometrycznych
x=0:pi/100:2*pi; %definicja zmiennej niezaleznej
ysin=sin(x);
%obliczenie wartosci funkcji sinus
ycos=cos(x);
%obliczenie wartosci funkcji cosinus
plot(x,ysin,’y--’,x,ycos,’r-.); %tworzenie wykresow
title(‘Wykres funkcji sinus i cosinus w zakresie [0,2pi]’);
%tytul
xlabel(‘x’);
%etykieta osi odcietych
ylabel(‘y’);
%etykieta osi rzednych
text(0.2,-03,’cos(x)=0 x=pi/2’); %wstawienie tekstu
zmienna=‘sin(x)=0 x=pi’; %wstawienie komentarza do
zmiennej
text(3.2,0.3,zmienna)
%wyswietlenie
komentarza
legend(‘y--’,sin(x)’,’r-.’,’cos(x)’,0); %legenda
axis([0 2*pi -1 1]; %zakresy osi
grid on %dodanie siatki
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
7
Uwagi do przykładu
Położenie legendy, utworzonej poleceniem
legend można łatwo zmienić za pomocą
myszy
Standardowo każde użycie funkcji plot
wymazuje poprzednią zawartość aktywnego
okna graficznego
W celu dodania kolejnej krzywej do istniejącego
wykresu należy użyć polecenia hold
hold on;
plot(x,tan(x),’g:’);
hold off;
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
8
Symbole kolorów oraz linii
Symbol Kolor
Symbol Styl linii
y
zółty
.
punkty
m
purpurowy o
kółka
c
błękitny
x
krzyżyki
r
czerwony
+
plusy
g
zielony
*
gwiazdki
b
niebieski
-
ciągła
w
biały
:
kropkowana
k
czarny
-.
kreska-kropka
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
9
Prezentacja graficzna macierzy -
przykład 1
M =
1 2 3 4
2 2 2 2
3 3 3 3
4 3 2 1
>> plot(M)
Wykreślenie na wspólnym wykresie 4 linii,
odpowiadających kolumnom macierzy M
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
10
Prezentacja graficzna macierzy -
przykład 2
M =
1 2 3 4
2 2 2 2
3 3 3 3
4 3 2 1
>> x=2:5
>> plot(x,M)
Przeskalowanie osi x
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
11
Prezentacja graficzna macierzy -
przykład 3
M =
1 2 3 4
2 2 2 2
3 3 3 3
4 3 2 1
>> x=2:5
>> plot(M,x)
Przeskalowanie osi y
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
12
Prezentacja graficzna macierzy -
przykład 4
M =
1 2 3 4
2 2 2 2
3 3 3 3
4 3 2 1
M1 =
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
>>plot(M,M1)
Kolumny M1 względem
M
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
13
Specjalizowane funkcje graficzne
bar - tworzy wykres słupkowy
compass - przedstawia liczby zespolone w
postaci wektorów - swobodnych
comet - sekwencyjne rysowanie wykresu
(animacja)
errobar - wykres błędu
feather - liczby zespolone w postaci wektorów
zaczepionych
fplot - wykres funkcji f(x) w zadanym przedziale
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
14
Specjalizowane funkcje graficzne
hist - utworzenie histogramu
polar - liczby zespolone w biegunowym
układzie współrzędnych
quiver - wykres pól wektorowych
rose - histogram kołowy
stairs - wykres schodkowy
stem - wykressekwencji danych dyskretnych
fill - kreślenie krzywej z wypełnieniem pod nią
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
15
Przykłady wykresów
x=-5:1:5;
y=[-1 4 -7 3 8 -8 1 2 5
6 0];
bar(x,y);
feather(x,y);
fill(x,y,’r’);
hist(x,y);
hist(y);
stairs(x,y);
stem(x,y);
err=ones(size(x));
errorbar(x,y,err);
polar(x,y,'bo');
compass(x,y,);
axis('normal');
x = 0:pi/100:4*pi;
y=sin(x);
comet(x,y);
comet(x,y);
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
16
Funkcja fplot
przykład
x=0:pi/50:pi;
plot(x,sin(x.^3));
plik s3.m
function t = s3(x)
t=sin(x.^3);
polecenie
fplot('s3',[0 pi])
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
17
Funkcja fplot - opis
Funkcja fplot automatycznie dobiera
gęstość próbkowania wykreślanej krzywej
Funkcja ta wykorzystuje poprzednio
zdefiniowaną m-funkcję
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
18
Predefiniowane kolory
Nazwa koloru Symbol koloru R
G
B
Żółty
y
1
1
0
Purpurowy
m
1
0
1
Błękitny
c
0
1
1
Czerwony
r
1
0
0
Zielony
g
0
1
0
Niebieski
b
0
0
1
Biały
w
1
1
1
Czarny
k
0
0
0
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
19
Mapa kolorów
Mapa kolorów jest trójkolumnową macierzą liczącą
standardowo 64 wiersze
Wiersz k definiuje kolor poziomu k danej mapy kolorów
Do zmiany używanej mapy kolorów służy polecenie colormap
Dostępne są następujące mapy kolorów:
hot, bone, cool, copper, flag, gray, hsv, jet, pink, prism
Użytkownik może zdefiniować własną mapę kolorów
Przykładowa komenda wybierająca mapę:
colormap(‘cool’);
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
20
Operacje na kolorach
brighten - zmiana jasności
contrast - zmiana kontrastu
spinmap - obraca cyklicznie mapę kolorów
rgbplot - wykreśla mapę kolorów
hsv2rgb, rgb2hsv - konwersja z hsv na rgb
i odwrotnie
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
21
Przykładowe operacje na
kolorach
>> colormap('hsv');
>> M=peaks(20);
>> surf(M);
>> contmap=contrast(hsv);
>> colormap(contmap);
>> surf(M);
>> brg_map=brighten(-0.7);
>> colormap(brg_map);
>> rgbplot(hot);
>>
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
22
Grafika trójwymiarowa
fill3 - tworzy wielokąt wypełniony kolorem
plot3 - wykreśla linię w trzech wymiarach
comet3 - sekwencyjne rysowanie linii
(animacja)
contur3 - wykres konturowy
mesh - wykres siatkowy
meshc - kombinacja wykresu siatkowego i
konturowego
pcolor - reprezentacja elementów macierzy
kolorami
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
23
Grafika trójwymiarowa
slice - wykreśla przekroje figury
trójwymiarowej
surf - wykres powierzchniowy
waterfall - wykres falowy
cylinder - cylinder, stożek
sphere - sfera
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
24
Linia śrubowa
>>
k=0:pi/100:10*pi;
>>
plot3(k,sin(k),cos(k)
);
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
25
Wielokąt w przestrzeni
trójwymiarowej
>>
>>
k=0:pi/3:2*pi;
>> x=sin(k);
>> y=cos(k);
>>
z=ones(size(x));
>>
fill3(x,y,z,'g');
>>
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
26
Pozostałe funkcje graficzne
>>
>> M=peaks;
>> mesh(M);
>> meshc(M);
>> contour3(M,20);
>> pcolor(M);
>> waterfall(M);
>> R=0:0.1:1;
>> cylinder(R,20);
>> sphere(30);
>>
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
27
Funkcje graficzne
view - zmiana kąta patrzenia na wykres
subplot - umieszczenie w jednym oknie
graficznym większej liczby wykresów
figure - otwarcie nowego okna graficznego
clf - wyczyszczenie zawartości okna
clear - zamknięcie okna
axis - przeskalowanie osi
28.06.21
M. Kwiesielewicz. Graficzna prezentacja wyników ...
28
Przykłady funkcji graficznych
>> M=peaks(20);
>> M_pusta=NaN*ones(6,6);
>> subplot(1,2,1), surf(M);
>> view(15,50), grid on;
>> title('Macierz funkcji peaks(20),
view(15,150)’);
>> xlabel('x');
>> ylabel('y');
>> zlabel('z');
>> M_widok=M;
>> M_widok(6:11,8:13)=M_pusta;
>> subplot(1,2,2), surf(M_widok);
>> view(3);
>> title('Macierz funkcji peaks(20),
view(3)');