You are on page 1of 41

EHB-105 ALGORİTMA VE

PROGRAMLAMA

DERS-8

MATLABDA GRAFIKLER

1
GRAFIKLER
MATLAB diğer programlama dillerine nazaran oldukça güçlü bir
grafik araçkutusuna (toolbox)’a sahiptir. MATLAB’de grafik
çizebilmenin en kolay yollarından biri plot komutunu kullanmaktır.
Örnek: y=x2-9x-20 fonksiyonun grafiğini çizen kod aşağıdaki
gibidir.
200

150

x=1:20;
100
y=x.^2-9*x-20;
50
plot(x,y)
0

-50
0 2 4 6 8 10 12 14 16 18 20

2
GRAFIKLER
Bir grafikte aşağıda verilen tanımlamalar mevcut olmalıdır:
• Grafiğin başlığı
• Eksen takımlarının isimleri
Grafiğe bir isim, başlık vermek için title komutu kullanılır X
eksenine bir eksen ismi verilmesi için xlabel
Y eksenine bir eksen ismi verilmesi için ylabel komutu
kullanılır

3
2D VE 3D
Matlab, 2D ve 3D başta olmak üzere çok gelişmiş
grafik araçları sunar:
Çizgi (line) grafikler (plot, plot3, polar)
Yüzey (surface) grafikler (surf, surfc)
Ağ (mesh) grafikler (mesh, meshc, meshgrid)
Contour grafikler (contour, contourc, contourf)
Çubuk (bar), pasta (pie) vb özel grafikler (bar, bar3, hist,
rose, pie, pie3)
Animasyonlar (moviein, movie vb komutlar)

4
2D GRAFİK

5
PLOT(X,Y, ‘ÇIZGI
TIPI’,’ÖZELLIKADI’,’ÖZELLIKDE
ĞERI’)

Özellik adı Özellik Değeri


LineWidth(linewidth) Default değer (0.5)
MarkerSize(markersize) Değer
MarkerEdgeColor(markeredgecolor) renkler
MarkerFaceColor(markerfacecolor) renkler

6
PLOT
>> x=[1 2 3 5 7 7.5 8 10];
8
>> y=[2 6.5 7 7 5.5 4 6 8];
>> plot(x,y) 7

>> x=[1 2 3 5 7 7.5 8 10]; 6

>> y=[2 6.5 7 7 5.5 4 6 8];


5
>> plot(x,y,'r')
4

>> x=[1 2 3 5 7 7.5 8 10];


3
>> y=[2 6.5 7 7 5.5 4 6 8];
>> plot(x,y,'--y')
2
1 2 3 4 5 6 7 8 9 10

>> x=[1 2 3 5 7 7.5 8 10];


>> y=[2 6.5 7 7 5.5 4 6 8];
>> plot(x,y,'*')

7
PLOT

>> x=[1 2 3 5 7 7.5 8 10];


>> y=[2 6.5 7 7 5.5 4 6 8];
>> plot(x,y,'g:d')

>> x=[1 2 3 5 7 7.5 8 10];


>> y=[2 6.5 7 7 5.5 4 6 8];
>> plot(x,y,'-mo','LineWidth',2,'markersize',12,'MarkerEdgeColor','g',
'markerfacecolor','y')

8
PLOT 200
x.2-9*x-20 fonksiyonun grafigi

150

x=[1:1:20];
100
y=x.^2-9*x-20;

y ekseni
plot(x,y)
50
title('x.^2-9*x-20
fonksiyonun grafigi'); 0

xlabel('x ekseni');
ylabel('y ekseni'); -50
0 2 4 6 8 10 12 14 16 18 20
x ekseni

9
UYGULAMA
t = 0:0.1:10
s = sin(t); % t'nin sinüsünü al
plot(t,s); % s'yi t'ye karşı çizdir

veya
plot(t,s,'k*');

close; % Açık olan şekli kapat

10
ÇOKLU GRAFIK
t = 0:0.1:10
A = 8;
f_1 = 2;
s_1 = A*sin(2*pi*f_1*t); % Genliği 8, frekansı 2 Hz olan sinüs
f_2 = 4;
s_2 = A*cos(2*pi*f_2*t); % Genliği 8, frekansı 4 Hz olan kosinüs

plot(t,s_1); % s_1'i çizer


plot(t,s_2); % Açık şekli silip üzerine s_2'yi çizer

plot(t,s_1); % s_1'i çizer


figure; % Yeni bir şekil açar
plot(t,s_2); % s_2'yi yeni şekle çizer

11
8

-2

-4

-6

-8
0 1 2 3 4 5 6 7 8 9 10

12
ÇOKLU GRAFIK
plot(t,s_1); % Birinci şekli çizdir
hold all; % Şekli tut
plot(t,s_2); % İkinci şekli çizdir
hold off; % Şekli bırak

title('İki güzel fonksiyon'); % Şekle başlık koy


ylabel('Genlik'); % y eksenine etiket ver
xlabel('Zaman (saniye)'); % x etiket ver
legend('f=2 Hz olan sinüs','f=4 Hz olan kosinüs') % lejant koy
grid on; % Şekli karelere böl

13
ÇOKLU GRAFIK
y(t)=3t2-5t+8 8000

7000
y’(t)=6t-5
6000

5000

t=[0:1:20]; 4000

y_1=t.^3-5*t+8; 3000

2000
y_2=6*t-5;
1000
plot(t,y_1,t,y_2)
0

-1000
0 2 4 6 8 10 12 14 16 18 20

14
UYGULAMA
120

100

x=[-2:0.01:4]; 80

y=3*x.^3-26*x+6; 60

yd=9*x.^2-26; 40

ydd=18*x; 20

plot(x,y,'-b', x,yd,'--r', x,ydd,':k') 0

-20

-40
-2 -1 0 1 2 3 4

15
UYGULAMA

0 ila 2*pi arasındaki açı değerleri için sin(x) ve cos(x)


fonksiyonlarını aynı grafik penceresinde çizen bir MATLAB
programı yazınız

16
EKSEN IŞARETLERININ
AYARLANMASı
1

0.8

0.6

0.4

x = -pi:.1:pi; 0.2

-0.2
y = sin(x); -0.4

-0.6

plot(x,y) -0.8

-1
-pi -pi/2 0 pi/2 pi

set(gca,'XTick',-pi:pi/2:pi)
set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})

17
GRAFİKLERDE ÇEŞİTLİ
DÜZENLEMELER

Elde edilen grafiklerde aşağıda belirtilen düzenlemeler


yapılabilir:
çizgi rengi ve tipini değiştirmek
x değişkeni ile fonksiyon değerinin kesişitiği noktaların
işaretlemek
Grafiklere açıklama eklemek
Plot(x,y,’r-’) şeklindeki bir komut ile x ve ye vektörlerinin
grafik çizgi renginin kırmızı ve düz bir çizgi olması
sağlanmıştır

18
ÖZELLIKLER
Renk İşaretleme Biçimi Çizgi biçimi

Y: sarı . : nokta - : sürekli çizgi


M:magna o : yuvarlak : : nokta nokta
B:mavi x : x işareti -. : kesikli çizgi ve nokta
R:kırmızı + :artı işareti -- : kesikli çizgi
G:yeşil * :yıldız işareti
W:beyaz S : kare
D: elmas
V : aşağı üçgen
^ : yukarı üçgen
<: sola üçgen
>: sağa üçgen

19
P: beşgen
LEGEND
Legend fonksiyonu ile hangi eğrinin hangi fonksiyona ait
olduğu belirtilir.
sinx ve türevinin de?i?imi
x=[0:pi/10:4*pi]; 1
sin(x)
cos(x)
y1=sin(x); 0.8

0.6
y2=cos(x); 0.4

Fonksiyonun degisimi
plot(x,y1,'b.:',x,y2,'b<-') 0.2

0
xlabel('x degisimi');
-0.2
ylabel('Fonksiyonun degisimi'); -0.4

title('sinx ve türevinin değişimi') -0.6


-0.8
legend('sin(x)','cos(x)',-1)
-1
0 2 4 6 8 10 12 14
x degisimi

20
FIGURE
Figure fonksiyonu ile çoklu grafikler
Birden fazla grafik penceresini açmak için figure(n) komutu
kullanılır. Burada n grafik penceresini belirtmektedir.

x=0:pi/30:2*pi;
y1=sin(x);
y2=cos(x);
figure(1),plot(x,y1,'bo:')
figure(2),plot(x,y2,'r*-')

21
SUBPLOT FONKSIYONU
ILE ALT GRAFIKLER
Aynı grafik penceresinde birden fazla grafik çizmek için
subplot (a,b,c) fonksiyonu icra edilir. Burada
a: grafik penceresinin satır sayısı
b: grafik penceresinin sütün sayısı
c: alt pencere numarası

22
SUBPLOT

subplot(2,2,1)
subplot(2,2,3)
x=0:pi/30:2*pi;
y3=tan(x);
y1=sin(x);
plot(x,y3)
plot(x,y1)
title('f(x)=tan(x)')
title('f(x)=sin(x)')
subplot(2,2,2) subplot(2,2,4)

y2=cos(x); y4=cot(x);
plot(x,y2) plot(x,y4)
title('f(x)=cos(x)') title('f(x)=cot(x)')

23
SUBPLOT
subplot(2,2,1); % Şekli 2x2'lik 4 alt şekil olarak düşün, 1.yi seç
plot(t,s_1); % s_1'i çiz
title('2Hz sinüs dalgasi'); % Başlık
ylabel('Genlik')
xlabel('Zaman');
subplot(2,2,2); % Şekli 2x2'lik 4 alt şekil olarak düşün, 2.yi seç
plot(t,s_2); % s_2'yi çiz
title('4Hz kosinüs dalgasi'); % Başlık
ylabel('Genlik'); % y eksenini isimlendir
xlabel('Zaman'); % x eksenini isimlendir

24
2Hz sinüs dalgasi 4Hz kosinüs dalgasi
10 10

5 5
Genlik

Genlik
0 0

-5 -5

-10 -10
0 5 10 0 5 10
Zaman Zaman

25
SUBPLOT
subplot(2,2,3); % Şekli 2x2'lik 4 alt şekil olarak düşün, 3.yü seç
plot(t,s_1+s_2); % s_1+s_2'yi çiz
title('Toplam sinyal'); % Başlık
ylabel('Genlik'); % y eksenini isimlendir
xlabel('Zaman'); % x eksenini isimlendir
subplot(2,2,4); % Şekli 2x2'lik 4 alt şekil olarak düşün, 4.yü seç
plot(t,s_1.*s_2); % s_1*s_2'yi çiz
title('Çarpım sinyal'); % Başlık
ylabel('Genlik'); % y eksenini isimlendir

26
HOLD KOMUTU
Aynı eksen takımında birden fazla grafik çizmek için hold
komutu kullanılır. Figure fonksiyonu kullanılmadığı sürece
işletilen herbir plot komutu aynı grafik penceresinde işlem
8
görür. sin(x)
7 e 2*sin(x)

6
x=0:pi/30:2*pi;
5
y1=sin(x);
4
plot(x,y1,'k*:')
3

hold 2

y2=exp(2*sin(x)); 1

plot(x,y2,'ro--') 0

legend('sin(x)','\bf{e}^{2*sin(x)}') -1
0 1 2 3 4 5 6 7

27
DATA GRAFIKLERI PASTA
GRAFIKLERI: 2D
11%

22%

x = [1 3 0.5 2.5 2];


explode = [0 1 0 0 0];
pie(x,explode) 33%

colormap jet
28%

6%

Explode ifadesi ile ilgili oran pasta grafikten ayrılır.

28
PASTA GRAFIKLERI: 3D

x = [1 3 0.5 2.5 2]
22%
explode = [0 1 0 0 0]
11%

pie3(x,explode)
28%

colormap hsv

33%
6%

29
ÇUBUK GRAFIKLERI: 3D

Y = [10 5 6 18 4 5];
X= [25 35 30 45 50 55]
60
Z=[X;Y]
40
bar3(Z,0.5)
20

6
0
5

1 4
3
2 2
1

30
ÇUBUK GRAFIKLERI
yr=[1988:1994]
30
sle=[8 12 20 22 18 24 27];
barh(yr,sle) 25

xlabel(‘Satışlar’) 20

ylable(‘Yıllar’)
Satislar
15

Veya 10

bar(yr,sle,’r’) 5

ylabel(‘Satışlar’)
0
xlable(‘Yıllar’) 1988 1989 1990 1991
Yillar
1992 1993 1994

31
28

26

24

22

yr=[1988:1994] 20

18

sle=[8 12 20 22 18 24 27]; 16

14

12
stairs(yr,sle) 10

8
1988 1989 1990 1991 1992 1993 1994

yr=[1988:1994] 30

25
sle=[8 12 20 22 18 24 27];
20

stem(yr,sle)
15

10

0
1988 1989 1990 1991 1992 1993 1994

32
x = linspace(-1,1,30); %-1'den 1'e eşit aralıklı 30 elemanlı
vektör oluştur
y = linspace(-1,1,30); %-1'den 1'e eşit aralıklı 30 elemanlı
vektör oluştur
[xg,yg] = meshgrid(x,y); % 3B çizim için 30x30'luk bir örgü
oluştur
zg = xg.^2 + yg.^2; % Çizdirilecek fonksiyonu örgü üzerinde
hesapla
figure; % Yeni bir şekil aç
contour(xg,yg,zg); % Fonksiyonu eşyülselti haritası
formatında çiz

33
figure; % Yeni bir şekil aç
contourf(xg,yg,zg); % Fonksiyonu içi dolu eşyülselti haritası formatında
çiz

figure; % Yeni bir şekil aç


mesh(xg,yg,zg); % Fonksiyonu içi çiz

figure; % Yeni bir şekil aç


surf(xg,yg,zg); % Fonksiyonu içi dolu olarak çiz
colorbar; % Şekle, renklerin temsil ettiği değerleri gösteren çubuk ekle
title('3B bir çizim'); % Başlık koy
xlabel('x değeri'); % x eksenine etiket koy
ylabel('y değeri'); % y eksenine etiket koy
zlabel('z değeri'); % z eksenine etiket koy

34
EŞ YÜKSELTI EĞRILERI

[X,Y] = meshgrid(-2:.2:2,-2:.2:3);
3
Z = X.*exp(-X.^2-Y.^2);
2.5

0
[C,h] = contour(X,Y,Z); 2

1.5
clabel(C,h)
1

1
-0
.1 0.

0.
-0 .2 0.2
colormap cool 1

.1
-0
0.5 -0.3 0.3

0
-0 .4

0.4
0

0.2
-0 .2
-0

2
-0.5 -0 .3 0.3
.2

0.
-0

1
.1

0.
.1 0.
-1 1
-0

-1.5

0
-2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

35
EŞ YÜKSELTI
EĞRILERI

[X,Y] = meshgrid([-2:.25:2]); 0.5

Z = X.*exp(-X.^2-Y.^2);
contour3(X,Y,Z,30) 0

surface(X,Y,Z,'EdgeColor',
[.8 .8 .8],'FaceColor','none') -0.5
2

grid off 0

1.5 2
0 0.5 1
view(-15,25) -2
-2 -1.5 -1 -0.5

colormap cool

36
EŞ YÜKSELTI
EĞRILERI

[X,Y] = meshgrid([-2:.25:2]);
Z = (X.^2-Y.^2);
4
meshc(X,Y,Z)
2
colormap cool
0

-2

-4
2
1 2
0 1
0
-1 -1
-2 -2

37
UYGULAMA

Aşağıda verilen dataları bir dosyadan okuyup grafiğini çizen


bir MATLAB programı yazınız
x y
1 10
3 13
5 15
8 16
9 18

38
UYGULAMA
Aşağıda verilen fonksiyonu x:-4:4, y=-4:4 aralığında 3D ve eş
yükselti eğrilerini bir grafik penceresinde birlikte gösteriniz
(subplot).

39
UYGULAMA
x = [ 0 : 0.1 : 100 ]
y = sin(x)*x./(1+cos(x));
plot(x,y)
grid

x = [ 0 : 0.1 : 100 ]
y = sin(x)*x./(1+cos(x));
plot(x,y, 'rx')

40
FPLOT
Fplot komutu sınırlar arasında verilen fonksiyonun grafiğini
çizer.
Fplot(‘fonksiyon’,limitler,’çizgi şekli’)

>>fplot(‘x^2+4*sin(2*x)-1’,[-3 3])

41

You might also like