Matlab da 2-boyutlu Grafik Çizimi Arş Gör Mehmet Ali ÜSTÜNER Manisa, 03122017
Arş Gör Mehmet Ali ÜSTÜNER 2 Dikdörtgen (x-y) Ve Kutupsal Eksenlerde Çizgi Grafikleri: En basit çizim, iki değişkeni olan çizimlerdir Bunlar için kullanılacak komut, "plot" komutu kullanılır plot(x,y) Bu komut x değişkenini y değişkenine karşı gösteren bir grafik oluşturur Eğer x ve y matris şeklinde veriler ise, bu durumda plot komutunun yapacağı iş önce ilk sütunları karşılaştırmalı çizmek ve sonra bu durumu her bir sütun için tekrar etmektir
Arş Gör Mehmet Ali ÜSTÜNER 3 Örnek: x ve y elemanları (0,0), (3,2), (5,1) ve (4,3) olan düzlem; x= [0 3 5 4 0]; y= [0 2 1-3 0]; plot(x,y) x: x eksenine ait vektör y: y eksenine ait vektör
Arş Gör Mehmet Ali ÜSTÜNER 4 Unutulmamalıdır ki, grafiğini çizeceğimiz x ve y matrislerinin boyutları eşit olmalıdır Aksi taktirde matlab boyut uyuşmazlığı hatası verecektir x=-5:01:5; % x vektörünün 101 elemanı vardır y=x^5; ^ şeklinde yazılmalıdır ki y vektörü x vektöründeki tüm elemanların ayrı ayrı 5 kuvveti olsun
Arş Gör Mehmet Ali ÜSTÜNER 5 Örnek: x=-5:01:5; y=x^5; plot(x,y)
Arş Gör Mehmet Ali ÜSTÜNER 6 Örnek: y(t)=sin(2t) sinyalini 001 adımlarla [-5 5] zaman dilimi için çizdirelim t = -5: 001 : 5; y = sin(2*t); plot(t,y)
Arş Gör Mehmet Ali ÜSTÜNER 7 Grafik Düzenleme Grafiğimizin daha belirgin olması için 'linewidth komutu ile grafik çizgimizin kalınlığını ayarlayabiliriz plot(t,y,'linewidth',3) %Çizgi kalınlığını 3 yapacaktır Çizdirilen grafiklerin daha anlamlı olması için, grafiklere başlık ve x ile y eksenine de isim verilmesi gerekir title ( ' Grafiğin başlığı ' ) xlabel ( ' x ekseninin etiketi ' ) ylabel ( ' y ekseninin etiketi ' ) İstenilen durumlarda yazıların büyüklüğünü ayarlamak için fontsize komutu kullanılabilir title ( ' Grafiğin başlığı ','fontsize', [14]) xlabel ( ' x ekseninin etiketi ','fontsize', [14]) ylabel ( ' y ekseninin etiketi ','fontsize', [14]) Bu komutların en son yazılan plot komutu için geçerli olduğu unutulmamalıdır Her plot komutu için ayrı ayrı yazılmaları gerekmektedir
Arş Gör Mehmet Ali ÜSTÜNER 8 Fraklı Türde Çizgi ve İşaretlerle Grafik Çizme plot komutu grafikleri düz çizgi ile çizer Farklı türde, renkte, veya işaretlerle grafik çizilmek isteniyorsa, istenilenler plot komutu içirisinde yazılmalıdır plot(x,y, 'ab', 'linewidth',3) x: x eksenine ait vektör y: y eksenine ait vektör a: çizimde kullanılacak çizgi/işaret/renk tanımlaması b: çizimde kullanılacak çizgi/işaret/renk tanımlaması
Arş Gör Mehmet Ali ÜSTÜNER 9 Şimdi bir önceki örneğimizi yeni komutlarımızla güncelleyelim t = -5:01:5; y = sin(2*t); plot(t,y,'linewidth',3) title ( ' y(t) = sin2t fonksiyonunun [-5 5] aralığındaki değişimi ','fontsize', [14]) xlabel ( ' zaman (s) ','fontsize', [14] ) ylabel ( ' y(t) ','fontsize', [14] )
Arş Gör Mehmet Ali ÜSTÜNER 10 Çizgi ve işaret çeşitleri: İşaret Çeşitleri Nokta Artı + Yıldız * Kare s x işareti x Daire o Aşağı üçgen v Yukarı üçgen ^ Sola üçgen < Sağa üçgen > Beşgen p Altıgen h Renkler Kırmızı Beyaz Yeşil Siyah Mavi r w g k b Ek olarak, grafiklerimizin daha rahat okunması açısından, arka planı ölçeklendirmek için plot komutundan sonra grid komutunu kullanabiliriz Çizdiğimiz grafik hakkında gösterge eklemek için ise legend komutunu kullanacağız Sarı y Eğer eksenleri belli aralıklarda görmek istiyorsak; Magenta m axis([x1 x2 y1 y2]) komutunu kullanabiliriz Çizgi Çeşitleri x1, x2 : x ekseni sınırları y1, y2 : y ekseni sınırları Düz çizgi - Kesikli çizgi -- İki noktalı : Kesikli noktalı - Grafik içinde herhangi bir yere metin eklemek için, text(x,y, yazılacak metin ) komutunu kullabiliriz x ve y metinin yazılacağı koordinatları göstermektedir Koordinat girmeden yazılmak isteniyorsa, gtext( yazılacak metin ) komutu ile grafik çizildikten sonra fare ile metnin yeri belirlenebilir
Arş Gör Mehmet Ali ÜSTÜNER 11 Bir önceki örneğimizi kesikli noktalı şekilde kırmızı renkte çizelim ve öğrendiklerimizin hepsini uygulayalım: t = -5:01:5; y = sin(2*t); plot(t,y,'-r','linewidth',3) title ( ' y(t) = sin2t fonksiyonunun [-5 5] aralığındaki değişimi ','fontsize', [14] ) xlabel ( ' zaman (s) ','fontsize', [14] ) ylabel ( ' y(t) ','fontsize', [14] ) legend('sin2t') text(-18,075,'sin2t grafiği','fontsize', [14]) axis([-45 45-12 12]) grid
Arş Gör Mehmet Ali ÜSTÜNER 12 Tek pencerede birden fazla grafik çizimi: 1 plot komutu içinde birden fazla grafik çizdirilebilir: plot(x1,y1, a1, x2,y2, a2,, xn,yn, an, 'fontsize', [14] ) 2 hold on komutu kullanılarak da aynı grafik içine başka grafik eklenebilir Bu komut grafik çizilen en son pencereyi dondurarak üzerine başka grafik eklenebilmesini sağlar plot(x1,y1, a1,'fontsize', [14]) hold on plot(x2,y2, a2,'fontsize', [14]) hold on plot(xn,yn, an,'fontsize', [14]) x ler : x eksenindeki vektörler y ler : x eksenindeki vektörler a lar : ilgili grafiğin çizim özellikleri
Arş Gör Mehmet Ali ÜSTÜNER 13 Tek pencerede birden fazla grafik çizimi: title, xlabel, ylabel, legend, grid, text, axis gibi komutlar en son açılan grafik penceresi için geçerli olduğundan, her plot komutu için ayrı ayrı yazılmalıdır Hold on komutunu iptal etmek için hold off komutu kullanılır plot(x1,y1, a1,'fontsize', [14]) title ( ' ' ) xlabel (' ' ) ylabel (' ' ) legend(' ' ) text(x, y, ' ' ) axis([]) grid; hold on plot(x2,y2, a2,'fontsize', [14]) title ( ' ' ) xlabel (' ' ) ylabel (' ' ) legend(' ' ) text(x, y, ' ' ) axis([]) grid; hold on plot(xn,yn, an,'fontsize', [14]) title ( ' ' ) xlabel (' ' ) ylabel (' ' ) legend(' ' ) text(x, y, ' ' ) axis([]) grid
Arş Gör Mehmet Ali ÜSTÜNER 14 Aynı pencerede birden fazla grafik çizimi: Aynı pencerede birden fazla grafiği ayrı ayrı görmek istiyorsak, pencereyi parçalara bölmek ve çizeceğimiz grafiği, hangi parçaya çizdirmek istediğimizi belirtmemiz gerekir Bunun için kullanılan komut subplot komutudur subplot ( a, b, c) a: satır sayısı b: sütun sayısı c: çizimin yapılacağı parça numarası
Arş Gör Mehmet Ali ÜSTÜNER 15 Örnek: En son yaptığımız örneği 2x2'lik matris şeklinde böldüğümüz pencerenin sağ üst köşesine yerleştirelim t = -5:01:5; y = sin(2*t); subplot (2,2,2) plot(t,y,'-r','linewidth',3) title ( ' y(t) = sin2t fonksiyonu ') xlabel ( ' zaman (s) ') ylabel ( ' y(t) ') legend('sin2t') text(-18,075,'sin2t grafiği') axis([-45 45-12 12]) grid
Arş Gör Mehmet Ali ÜSTÜNER 16 Pencereler her zaman eşit şekilde bölünmek zorunda değildir Örneğin pencerenin sol yarısını 3 parçaya bölüp, sağ yarısını tek parça kullanmak istersek; Adresleme yaparken her bir parça için ayrı ayrı düşünülmelidir Sol alt köşedeki parça için adres 3x2'lik matrisin 5 elemanı iken, sağ taraftaki parça için adres 1x2'lik matrisin 2 elemanıdır Adresleme yapılırken parçaların tamamının veya bir kısmının çakışmamasına dikkat edilmelidir
Örnek: Arş Gör Mehmet Ali ÜSTÜNER 17