MATLAB mempunyai beberapa fungsi built-in yang dapat digunakan untuk membuat grafik, yang mencakup grafik 2 dimensi, grafik 3 dimensi, graphical user interfaces (GUI) dan animasi. Pada tutorial ini kita hanya mempelajari grafik sederhana 2 dimensi dan 3 dimensi. Di sini kita memanfaatkan materi yang telah diberikan pada tutorial sebelumnya, seperti m-file, operasi array, pemrograman dengan control flow, dan lain-lain.
1. Grafik 2 dimensi
Fungsi dasar yang digunakan untuk membuat grafik dua dimesi adalah plot. Fungsi ini membutuhkan input berupa pasangan-pasangan array.
Contoh 1:
Misalkan kita ingin menggambar grafik fungsi rasional berikut :
,
Perhatikan script file berikut :
%script file graph1
%grafik dari fungsi rasional y = x/(1+x^2)
for n=1:2:5
nn = 10*n;
x = linspace(-2,2,nn);
y = x./(1+x.^2);
plot(x,y,’r.-’)
title(sprintf(‘Grafik %g. Plot didasarkan pada n = %g point.’…
, (n+1)/2, nn))
axis([-2, 2,-0.8,0.8])
xlabel(‘x’)
ylabel(‘y’)
grid
pause
end
Mari kita analisa isi dari file ini :
1. Loop for dieksekusi tiga kali, yaitu n=1, 3, 5. Jadi tiga grafik untuk fungsi yang sama ditampilakan pada figure window.
2. Fungsi MATLAB linspace(a,b,n) membangun array seragam pada interval [a,b].
3. Ordinat y dari titik-titik x yang dibangun oleh linspace didefinisikan sesuai dengan fungsi yang akan digambar grafiknya.
4. Perintah plot(x,y,’pilihan’) dimaksudkan untuk menggambar kurva dengan memasangkan titik-titik x dan y yang sudah didefinsikan. Pilihan di sini untuk memberikan tanda/cirri khusus pada grafik yang digambar. Pada contoh di atas, pilihan ‘r.-‘ berarti kurva berwarna merah (red), titik-titiknya ditandai oleh dot (.) dan mereka dihubungkan oleh garis padat (solid).
5. Fungsi title memberikan keterangan/judul grafik. Perintah sprintf di sini menggunakan tiga input, yaitu string dan nama dua variabel yang tercetak pada tiap-tiap grafik. Notasi %g dimaksudkan untuk fomat integer pada tampilan.
6. Perintah axis meminta MATLAB untuk membuat ukuran/dimensi kotak yang akan ditempati oleh grafik.
7. Untuk menambah informasi terhadap sumbu koordinat, digunakan perintah xlabel dan ylabel.
8. Perintah grid untuk membuat garis-garis skala pada grafik.
9. Perintah pause sebelum penutupan loop end dimaksudkan agar computer berhenti sejenak menjalankan proses sebelum ada respon dari pemakai. Sedangkan perintah pause(m) memintah computer berhenti selama m detik sebelum melakukan proses berikutnya.
Misalkan script file di atas telah disimpan dengan nama graph1.m. Pada command window lakukan
>> graph1
diperoleh grafik berikut :
Bila anda tekan Enter maka akan diperoleh grafik berikut :
Bila ditekan Enter lagi diperoleh grafik terahir berikut
Dari contoh di atas terlihat bahwa semakin banyak titik yang diambil semakin bagus pula grafik yang dihasilkan, namun membutuhkan lebih banyak waktu.
Untuk menggambar beberapa grafik pada command graph yang sama digunakan fungsi subplot.
Contoh 2.
%script file graph2
%beberapa grafik fungsi rasional y = x/(1+x^2)
%pada window yang sama
k =0
for n=1:3:10
nn = 10*n;
x = linspace(-2,2,nn);
y = x./(1+x.^2);
k = k+1;
subplot(2,2,k)
plot(x,y,’r.-’)
title(sprintf(‘Grafik %g. Plot didasarkan pada n = %g point.’…
, k, nn))
axis([-2, 2,-0.8,0.8])
xlabel(‘x’)
ylabel(‘y’)
grid
end
subplot(m1,m2,k) membuat window graph menjadi m1xm2 daerah di mana k = 1, 2, . . ., m1xm2 menunjukkan daerah mana yang akan ditempatkan grafik. Andaikan script file ini disimpan dengan nama graph2.m.
>> graph2
diperoleh grafik berikut
Berikutnya kita perhatikan contoh yang sedikit rumit berikut :
Contoh 3.
Misalkan akan membuat grafik dua ellips
dan
pada satu gambar.
Akan lebih mudah ditrasformasikan ke bentuk parametric berikut
,
dan
,
Perhatikan script file berikut
%script file graph3
%grafik dua ellips x(t) = 3+6cos(t), y(t)=-2+9sin(t)
%dan
% x(t) = 7+2cos(t), y(t)=8+6sin(t)
t=0:pi/100:2*pi;
x1=3+6*cos(t);y1=-2+9*sin(t);
x2=7+2*cos(t);y2=8+6*sin(t);
h1=plot(x1,y1,'r',x2,y2,'b');
set(h1,'LineWidth',1.5)
axis('square')
xlabel('x')
h=get(gca,'Xlabel');
set(h,'FontSize',14)
set(gca,'XTick',-
ylabel('y')
hh=get(gca,'ylabel');
set(hh,'FontSize',14)
set(gca,'YTick',-12:2:14)
title('Grafik dari (x-3)^2/36+(y+2)^2/81=1 dan (x-7)^2/4+(x-8)^2/36 =1.')
hhh=get(gca, 'Title');
set(hhh,'FontSize',14)
grid
Terdapat beberapa fungsi MATLAB baru yang kita gunakan di sini. Diperhatikan h1 = plot(…………) merupakan variabel berkenaan dengan informasi tentang grafik yang digambarkan dan ia disebut handle graphics. Perintah set yang digunakan pada baris berikutnya untuk memanipulasi plot. Contoh di atas, set(h1,'LineWidth',1.5) meminta MATLAB untuk membuat plot dengan ketebalan garis (linewidth) 1.5. Perintah axis('square') agar box yang akan ditempati grafik berupa bujur sangkar. Perintah h=get(gca,'Xlabel') untuk merujuk pada label sumbu x pada sumbu koordinat yang sedang aktif, note : gca adalah singkatan dari get current axis. Baris berikutnya, set(h,'FontSize',14) memberikan ukuran font 14 pada label sumbu x. Kemudian set(gca,'XTick',-
>> graph3
diperoleh
Secara umum terdapat 7 langkah dalam menggambar grafik 2 dimensi dengan MATLAB. Ketujuh langkah tersebut dapat dilihat pada table berikut :
Langkah | Contoh kode MATLAB |
1. Mempersiapkan data | x = 0:0.2:12; y1=bessel(1,x); y2=bessel(2,x); y3=bessel(3,x); |
2. Memilih window and menentukan posisi plot pada window | figure(1) subplot(2,2,1) |
3. Memanggil fungsi plot | h = plot(x,y1,x,y2,x,y3); |
4. Memilih tipe line, tanda-tanda untuk cirri khas. | set(h,'LineWidth',2,{'LineStyle'},{'--';':';'-.'}) set(h,{'Color'},{'r';'g';'b'}) |
5. Tetap batas sumbu koordinat, garis skala (grid) | axis([0 12 -0.5 1]) grid on |
6. Lengkapi grafik dengan keterangan, seperti label dan legend | xlabel('Time') ylabel('Amplitude') legend(h,'First','Second','Third') title('Bessel Functions')… [y,ix] = min(y1);text(x(ix),y, 'FirstMin\rightarrow',... 'HorizontalAlignment','right') |
7. Simpan /export grafik | Untuk penyimpanan lihat window berikut print -depsc -tiff -r200 myplot |
Langkah-langkah ini dapat ditulis dalam m-file, sebagai berikut :
%grafik beberapa fungsi bessel
x = 0:0.2:12;
y1=bessel(1,x);
y2=bessel(2,x);
y3=bessel(3,x);
%figure(1)
%subplot(2,2,1)
h = plot(x,y1,x,y2,x,y3);
set(h,'LineWidth',2,{'LineStyle'},{'--';':';'-.'})
set(h,{'Color'},{'r';'g';'b'})
axis([0 12 -0.5 1])
grid on
xlabel('Time')
ylabel('Amplitude')
legend(h,'First','Second','Third')
title('Bessel Functions')
[y,ix] = min(y1);
text(x(ix),y,'FirstMin\rightarrow',...
'HorizontalAlignment','right')
Bila ingin melihat grafiknya silahkan dilakukan sendiri.
Berbagai jenis garis, symbol dan warna pada plot dapat diperoleh dengan perintah
plot(x,y,’pilihan’)
di mana pilihan adalah salah satu karakter string pada ketiga kolom berikut :
WARNA b biru g hijau r merah c cyan m magenta y kuning k hitam | SIMBOL . titik o lingakaran x tanda silang x + tanda plus + * tanda bintang s kotak d diamond v segitiga (bawah) ^ segitiga (atas) < segitiga (kiri) > segitiga (kanan) p pentagram h heksagram | JENIS GARIS - garis padat (solid) : dot -. garis putus + dot -- garis putus |
Silahkan anda coba untuk masing-masing pilihan tersebut.
Untuk menyimpan grafik sebagai file grafik, ekstension fig, pada window graph, lakukan cara berikut
klik File – pilih Save – isi file name (misalnya, grafik1) - Save
Untuk membukanya kembali, melalui cuurent directory sorot file dengan nama grafik1.fig, klik mouse kiri 2 kali, atau dapat pula dari
File – Open – pilih grafik1.fig – Open
Grafik yang telah kita buat dapat dieksport ke dalam bentuk lain, seperti eps, ps, jpg, bmf, dan lain-lain. Untuk mengetahui informasi bagaimana cara mengeksport grafik MATLAB ketik
>>help print
Bila anda hanya ingin mengambil grafik MATLAB untuk dipindahkan ke aplikasi lain, misalnya MS word, dapat dilakuakan
klik Edit – Copy Figure
kemudian paste pada MS word.
Cara lain untuk mengedit grafik MATLAB adalah dengan menggunakan property editor. Melalui window figure,
klik edit – sorot ke salah satu dari 4 pilihan (Figure properties, Axes properties, Current Object Properties dan colormap)
Bila AxesProperties dipilih akan muncul tampilan berikut
Dari editor ini kita dapat melakukan apa saja untuk memanipulasi grafik. Selanjutnya silahkan coba atau ikuti penjelasan lisan.
Tidak ada komentar:
Posting Komentar