Bu yazımızda MATLAB grafik çizdirmeye giriş yapacağız. 2 boyutlu grafikler ve grafik elemanlarını (eksenler, lejantlar, başlıklar) inceleyeceğiz.
Matlab'da çeşitli işlemler yaptığımız verimizi güzel ve anlaşılır bir şekilde sunmak okurla etkili bir şekilde iletişim kurabilmek açısından önemlidir. Bu derste ilk olarak 2 boyutlu bir grafik çizeceğiz. İki veri seti (vektör) ele alalım:
x = [1 2 3 4 5]; y = [6 7 8 12 56];
Bu veri setlerinden plot komutu ile bir grafik elde edebiliriz:
plot(x, y);
Bu komut bize aşağıdaki grafiği yeni bir pencerede açacaktır:
Resim 1.
plot komutunu kullanırken dikkat etmemiz gereken noktalardan biri çizdirdiğimiz x ve y vektörlerinin elaman sayısının aynı olması. MATLAB, elemanları birbirleriyle eşleştiremezse grafiği çizdiremeyecektir.
Yazı İçeriği
Eksenlere Yazı Ekleme
Grafikte x ve y eksenlerinin neyi ifade ettiğini açıklamak faydalı olacaktır. Bunun için xlabel ve ylabel komutlarını şu şekilde kullanıyoruz:
xlabel('x ekseninde yazmasını istediğimiz yazı'); ylabel('y ekseninde yazmasını istediğimiz yazı');
Komut içerisinde yazmak istediğimiz yazıyı kesme işaretleri arasında yazmamız önemli. MATLAB'da metin yazmak istediğinizde bu kesme işaretlerini kullanmazsanız MATLAB komutunuzu anlayamaz. Biz bu grafik için şunları yazalım:
xlabel('x Verisi'); ylabel('y Verisi');
Resim 2.
Grafik çizimlerinde okurların x değerlerine karşılık gelen y değerlerini kolayca anlayabilmeleri için arka plana bir ızgara yerleştirmek faydalı olacaktır. Bunu aşağıdaki komut ile ekleyebiliriz:
grid on
Resim 3.
Görüldüğü üzere, x=3.5 değeri için y değerinin yaklaşık olarak 10'a denk geldiğini görebiliyoruz.
Grafiğe Başlık Ekleme
Bu grafiğe bir başlık eklemek için title komutunu kullanıyoruz. Bu komutta da xlabel ve ylabel komutlarında olduğu gibi başlığımızı kesme işaretleri arasına yazıyoruz.
title('MATLAB Türkiye Grafik Çizdirme - 1');
Resim 4.
Bu komutlarda herhangi bir hata yapmış olabiliriz. Mesela x eksenine "MATLAB Türkiye x Verisi" yazmak istiyoruz. xlabel komutunu tekrar kullandığımızda, eski x ekseni yazısı silinip yenisi yazılacaktır:
xlabel('MATLAB Türkiye x Verisi');
Resim 5.
Farz edelim ki iki ayrı veri setini aynı grafik üzerinde çizdirmek istiyoruz. Bu tip çizimler okurun kolayca kıyaslama yapabilmesi için faydalı olacaktır. Önce yeni verimizi tanımlayalım:
x2=[2 4 6 7]; y2=[4 2 7 25];
Aynı Anda İki Grafik Çizmek (hold on)
Bundan sonra eğer plot(x2, y2) dersek önceki grafiği kaybeder ve aşağıdaki gibi sadece yeni veri setinin grafiğini görürüz. Başlık, eksen yazıları ve ızgaranın da kaybolduğuna dikkat edin:
Resim 6.
Bunun olmasını önlemek için, hold on komutunu kullanmamız gerekiyor. Hold on, İngilizce'de "bekle" anlamına gelmektedir. Bu komutla grafikteki bütün elemanların olduğu gibi kalması gerektiğini anlatacağız. Şimdi bu grafiği kapatıp aşağıdaki satırlarla ilk veri setimizi tekrar çizdirip hold on ekleyerek ikinci veri setimizi çizdirelim:
plot(x, y); xlabel('MATLAB Türkiye x Verisi'); ylabel('y Verisi'); grid on title('MATLAB Türkiye Grafik Çizdirme - 1'); hold on plot(x2, y2);
Resim 7.
Görüldüğü üzere iki grafik de aynı pencerede beraber ve farklı renklerle görülüyor. Fark ettiyseniz x ve y vektörleri 5 elemana sahipken, x2 ve y2 vektörleri 4 elemana sahip. Bunları aynı figürde ayrı ayrı çizdirdiğimizde herhangi bir sorun olmuyor. Çünkü x ile y vektörlerinin ve x2 ile y2 vektörlerinin uzunlukları kendi içlerinde tutarlı.
Çizdirilen Verileri İsimlendirme
Bir pencerede şimdi yaptığımız gibi birkaç farklı grafik mevcut ise, gösterge (lejant) kullanmak grafikleri ayırt etmede yardımcı olur. Bunun için legend komutunu kullanıyoruz:
legend('İlk çizdirdiğimiz veri ismi', 'İkinci çizdirdiğimiz veri ismi');
Bu komutun kullanımında verilerin rumuzlarını kesme işaretleri içinde, sırayla ve aralara virgül yerleştirerek yazıyoruz. Daha fazla veri olması durumunda, virgül koyup devam edebiliriz. legend komutunu aşağıdaki gibi kullanalım:
[adinserter block="2"]
legend('İlk Veri', 'Sonraki Veri');
Resim 8.
Görüldüğü üzere gösterge sağ üst tarafa yerleştirildi. İstersek göstergeyi sol tıkla basılı tutarak başka bir yere sürükleyebiliriz.
Resim 9.
Eksen Aralıklarını Belirleme
Grafiğimizin eksen aralıklarını belirlemek için axis komutunu kullanıyoruz. Tüm sınırları tek tek ayarlamak için axis komutunu aşağıdaki şekilde kullanıyoruz:
axis([minimumx maksimumx minimumy maksimumy]);
axis komutunun parantezinin içinde ayrıca köşeli parantez açıp değerleri oraya yazıyoruz. Şu komutu kullanalım:
axis([1 17 -10 70])
Resim 10.
Görüldüğü gibi eksen aralıklarını genişlettik. Öte yandan, eksen sınırlarımızın tam olarak verimizin en düşük ve en yüksek değerleri olmasını da isteyebiliriz. Bunun için aşağıdaki komutu kullanıyoruz:
axis tight
Resim 11.
[adinserter block="2"]
Eksen uzunluklarımızın, gerçek uzunlukları yansıtacak şekilde, birim uzunluklarının aynı olmasını isteyebiliriz. Bunu
axis equal
komutu ile yapıyoruz. Aşağıda görüldüğü üzere, x ekseni aralığı y ekseni aralığına göre daha kısa olduğu için oldukça küçülüyor.
Resim 12.
Geri dönmek için
axis normal
komutunu kullanabiliriz. Bu bizi grafiğin axis tight olduğu haline geri döndürdü. Grafiğimizin kare şeklinde olmasını sağlamak için
axis square
komutunu kullanabiliriz. Bu komut aşağıdaki sonucu veriyor:
Resim 13.
Çizdirdiğimiz grafiği File->Save kullanarak kaydedebiliriz. Böylece ilk dersimizin de sonuna gelmiş oluyoruz. Bir dahaki derste, grafik penceresi araç çubuğuna ve aynı pencere içinde ayrı pencerelerde grafik çizdirme (subplot) konularına bakacağız.