
- Bagian-Bagian Figure
- Jenis Grafik
- Membuat Beragam Grafik
- Menyimpan Grafik
Dengan mempelajari Dasar-Dasar Pemrograman Matlab – Grafik, maka kalian sudah sangat lengkap sekali lho mengenai dasar pemrograman Matlab.
Bagian-Bagian Figure
Contents
Setiap grafik dalam Matlab mempunyai beberapa bagian seperti dibawah ini
Dengan banyaknya komponen diatas kalian bisa membuat beragam jenis grafik dalam bentuk 2D ataupun 3D sesuai dengan kebutuhan kalian. Keunggulan dari Grafik Matlab yaitu
- Toolbar yang sangat lengkap.
- Bersifat dinamis
- Serta bisa di overlapping dengan beragam jenis plot dalam 1 axes.
- Mendukung format penulisan latex juga.
Perintah untuk memanggil grafik di Matlab yaitu figure() yang akan tampil kosong seperti berikut
Jenis Grafik
Jenis/Pola grafik di Matlab ada banyak seperti yang ada di Excel bahkan lebih lengkap yaitu
- Line Plots: Plot, plot3, stairs, errorbar, area, stackedplot, loglog, semilogx, semilogy, fplot, fplot3, fimplicit.
- Data Distribution Plots: Histogram, histogram2, pie, pie3, scatter, scatter3, scatterhistogram, spy, plotmatrix, heatmap, wordcloud, parallelplot.
- Discrete Data Plots: Bar, barh, bar3, bar3h, pareto, stem, stem3, scatter, scatter3, stairs.
- Geographic Plots: Geobubble, geoplot, geoscatter.
- Polar Plots: Polarplot, polarhistogram, polarscatter, compass, ezpolar.
- Contour Plots: Contour, contourf, contour3, contourslice, fcontour.
- Vector Fields: Quiver, quiver3, feather.
- Surface and Mesh Plots: surf, surfc, surfl, ribbon, pcolor, fsurf, fimplicit3, mesh, meshc, meshz, waterfall, fmesh.
- Volume Visualization: Streamline, streamslice, streamparticles, streamribbon, streamtube, coneplot, slice.
- Animation: Animatedline, comet, comet3.
- Images: Image, imagesc.
Sangat banyak sekali ya, nah biar kalian lebih ngerti, penulis sajikan icon seperti berikut
- Grafik Plot
- Grafik Area
- Grafik Histogram
- Grafik Bar
- Grafik Stem
- Grafik Scatter
- Grafik Surf
- Grafik Contour
- Grafik Plot3D
- Subplot yaitu membagi figure menjadi beberapa axes sehingga bisa menampilkan lebih dari 1 grafik dalam 1 figure
- Overlapping grafik dengan teknik hold on yaitu menggabungkan grafik dalam 1 axes sehingga akan tampak jelas perbedaaanya
- Menyimpan hasil figure kedalam format gambar
Grafik Plot
Setiap perintah yang melibatkan grafik, maka gunakan perintah figure()
clc;clear all;close all; x = 0:0.1:10; y = 0.5*x.^2+4*x.^3+10; figure() plot(x,y); grid on xlabel('Waktu (detik)'); ylabel('Pergerakan Benda (m)'); title('Pergerakan Benda') txt = '\bullet \leftarrow 0.25t e^{-0.005t} di t = 300'; text(x(50),y(50),txt,'fontsize',12; legend('tinggi benda (m)'); set(gca,'FontSize',12)
Menggunakan Subplot
Jika ada 2 persamaan yang harus ditampilkan dalam 1 figure, bisa kalian gunakan teknik subplot(jumlah_baris, jumlah_kolom, index).
Menampilkan 2 kolom grafik yaitu kanan dan kiri
clc;clear all;close all; x = 0:0.1:10; y = 0.5*x.^2+4*x.^3+10; y2 = 4*x.^2+8*x.^3+15; figure() subplot(1,2,1),plot(x,y); grid on xlabel('Waktu (detik)') ylabel('Pergerakan Benda (m)'); title('Pergerakan Benda') legend('tinggi benda (m)') subplot(1,2,2),plot(x,y2); grid on xlabel('Waktu (detik)') ylabel('Pergerakan Benda (m)'); title('Pergerakan Benda') legend('tinggi benda (m)') set(gca,'FontSize',12)
Menggunakan ylim dan xlim
Kalau kalian tidak perhatikan dengan seksama, grafiknya sama, tapi secara sumbu y, maka persamaan y2 lebih tinggi daripada persamaan y1. Agar tidak bias, bisa kalian gunakan batasan ylim
clc;clear all;close all; x = 0:0.1:10; y = 0.5*x.^2+4*x.^3+10; y2 = 4*x.^2+8*x.^3+15; figure() subplot(1,2,1),plot(x,y); grid on xlabel('Waktu (detik)') ylabel('Pergerakan Benda (m)'); title('Pergerakan Benda') legend('tinggi benda (m)') ylim([1,10000]) set(gca,'FontSize',12) subplot(1,2,2),plot(x,y2); grid on xlabel('Waktu (detik)') ylabel('Pergerakan Benda (m)'); title('Pergerakan Benda') legend('tinggi benda (m)') ylim([1,10000]) set(gca,'FontSize',12)
Menggunakan Hold On
Atau biar lebih jelas, kalian bisa menggabungkannya menjadi 1 dengan teknik hold on yaitu mengoverlapping grafik dalam 1 figure
clc;clear all;close all; x = 0:0.1:10; y = 0.5*x.^2+4*x.^3+10; y2 = 4*x.^2+8*x.^3+15; figure() plot(x,y,'linewidth',2,'color',[0,0.5,0.75]); hold on plot(x,y2,'linewidth',2,'color',[0.75,0,1]); xlabel('Waktu (detik)') ylabel('Pergerakan Benda (m)'); title('Pergerakan Benda'); set(gca,'FontSize',12) legend('Benda 1','Benda 2'); grid on
Pada sesi ini kalian sudah mempelajari teknik-teknik visualisasi data menggunakan grafik di Matlab yang akan sangat membantu dalam mempelajari Buku Pengolahan Citra Digital dengan Matlab.
Grafik Area
Grafik ini sangat bagus sekali kalian gunakan visualisasi data yang bersifat tumpukan, seperti contoh berikut
clc;clear all;close all; x = linspace(0,10); y1 = 4 + sin(x).*exp(0.1*x); y2 = 4 + cos(x).*exp(0.1*x); figure() area(x,y1,'FaceColor','b','FaceAlpha',0.3,'EdgeAlpha',0.3) hold on area(x,y2,'FaceColor','r','FaceAlpha',0.3,'EdgeAlpha',0.3) grid on hold off
Kegunaan grafik area akan sangat bermanfaat ketika kalian menggunakannya didalam visualisasi persamaan garis.
(1)
Gambarkan persaman garis lurus diatas dalam sumbu x dan y <br>
Dari akan diubah menjadi
Dari akan diubah menjadi
Langkah selanjutnya yaitu , sehingga didapatkan
yaitu
dan yaitu
Setelah diketahui nilai masing-masing , kalian bisa membuat nilai batasan yaitu
dan
clc;clear all;close all; f1=@(x) 100-2.*x; f2=@(x) 80-((4/3).*x); m1 = 0:50; n1 = f1(m1); m2 = 0:60; n2 = f2(m2); figure area(m1,n1,'FaceColor',[1,0,0],'FaceAlpha',0.3,'EdgeAlpha',0.3) hold on area(m2,n2,'FaceColor',[1,0,0],'FaceAlpha',0.3,'EdgeAlpha',0.3) hold off; xlabel('Sumbu x') ylabel('Sumbu y')
Untuk menentukan titik potong, kalian bisa menggunakan SPL (Sistem Persamaan Linear) yaitu
Untuk mencari nilai yaitu
maka
sehingga
clc;clear all;close all; f1=@(x) 100-2.*x; f2=@(x) 80-((4/3).*x); m1 = 0:50; n1 = f1(m1); m2 = 0:60; n2 = f2(m2); A = [2,1; 4,3]; B = [100;240]; H = inv(A)*B; figure area(m1,n1,'FaceColor',[1,0,0],'FaceAlpha',0.3,'EdgeAlpha',0.3) hold on area(m2,n2,'FaceColor',[1,0,0],'FaceAlpha',0.3,'EdgeAlpha',0.3) scatter(H(1),H(2),100,'r','Fill') text(H(1)+3,H(2),[num2str(H(1)) ',' num2str(H(2))]) hold off; xlabel('Sumbu x') ylabel('Sumbu y')
Dengan melihat arsiran merah yang lebih pekat akan terlihat area perpotongan garis lurusnya
Grafik Bar
Grafik ini sama seperti layaknya grafik plot, hanya saja tampilkan berupa batangan, bisa kalian padu padankan dengan grafik plot dalam 1 axes agar lebih profesional. Dengan menggunakan data berikut ini, kalian bisa pelajari cara loading data disini https://www.softscients.web.id/2020/01/dasar-dasar-pemrograman-matlab-export.html
clc;clear all;close all; data = readtable('data agen mobil.xlsx'); hold on; yyaxis left bar(data.agen) ylabel('Jumlah Agen') grid on yyaxis right plot(data.penjualan,'LineWidth',3) ylabel('Penjualan') set(gca, 'XTick',1:length(data.kota)) set(gca, 'XTickLabel',data.kota) title('Data Penjualan Mobil Agen di Tiap Kota') hold off;
Kalian bisa melihat, terjadi anomali penjualan yaitu kota depok dengan jumlah agen lebih besar dengan semarang tapi malah pennjualan dibawah kota semarang
Menyimpan Figure kedalam File
Sebuah figure bisa disimpan dengan perintah saveas, hal yang perlu diperhatikan bahwa untuk mendapatkan figure active diperlukan perintah gcf dengan arti get current figure, sebagai contoh kalian ingin menyimpan figure diatas, maka kode lengkap sebagai berikut
clc;clear all;close all; data = readtable('data agen mobil.xlsx'); hold on; yyaxis left bar(data.agen) ylabel('Jumlah Agen') grid on yyaxis right plot(data.penjualan,'LineWidth',3) ylabel('Penjualan') set(gca, 'XTick',1:length(data.kota)) set(gca, 'XTickLabel',data.kota) title('Data Penjualan Mobil Agen di Tiap Kota') hold off; saveas(gcf,'output.jpg','jpg');
Hasilnya akan disimpan dengan format yang telah ditentukan diatas yaitu *.jpg
Grafik Scatter dan Scatter3
Grafik jenis ini digunakan untuk visualisasi antara 2 sumbu x dan y, biasa digunakan untuk melihat sebaran data, kalian bisa menggunakan kombinasi hold on dan hold off untuk mengoverlay sebaran data tersebut secara lebih baik. Perhatikan variabel dataset berikut yang berbentuk table (kalian pelajari saja loading IO di Matlab)
dataset = 60×3 table x y kelas __________ __________ _____ 0.52636 0.37413 -1 -0.74657 0.40369 -1 0.010322 -0.0027968 -1 -0.53795 -0.11375 -1 -0.13681 -0.35782 -1 -0.12159 0.27849 -1 -0.16766 -0.39768 -1 0.29805 -0.50668 -1 0.62574 0.072221 -1 0.0006656 -0.73404 -1 0.64587 -0.045277 -1 -0.0095404 -0.82772 -1 -0.085966 0.44392 -1 0.22893 -0.90869 -1 0.13189 0.099967 -1 -0.77533 0.26331 -1 0.54235 -0.35094 -1 -0.20228 0.71957 -1 -0.088098 0.36418 -1 0.30462 0.32451 -1 0.88823 0.10862 -1 -0.42547 -0.88726 -1 0.13367 0.54365 -1 -0.081148 0.82809 -1 -0.93484 0.049544 -1 0.89317 0.31122 -1 -0.26057 -0.13095 -1 0.11942 0.15746 -1 -0.34891 -0.2193 -1 -0.29093 -0.89079 -1 0.85876 0.75467 1 1.4226 -0.46729 1 -1.6697 0.54353 1 -1.3195 -0.70812 1 -0.8986 0.58513 1 0.13148 1.6095 1 1.4205 -0.98667 1 -1.4273 -0.71239 1 1.9577 0.03531 1 -1.2312 -1.1153 1 -0.89216 1.7071 1 -1.1713 -0.20108 1 0.89782 -0.78214 1 -1.1546 1.4454 1 1.243 -0.80497 1 -0.87375 -0.85593 1 1.9353 0.19302 1 1.2912 -0.6132 1 -0.65443 -1.6805 1 1.7824 -0.029985 1 0.89566 1.6875 1 1.1034 1.2859 1 1.6442 -0.7412 1 -0.4692 -1.3515 1 1.2313 0.54202 1 0.065903 -1.9192 1 0.036806 -1.5109 1 1.7471 -0.91768 1 -0.41398 -1.679 1 1.2024 1.1914 1
Terlihat ada 2 kelas, kalian akan memplotkan data tersebut kedalam grafik scatter.
Akan terlihat jelas kalau seperti ini agar lebih cantik
Atau terdapat 3 sumbu seperti berikut
dataset = 60×4 table x y z kelas __________ __________ ________ _____ 0.52636 0.37413 0.65901 -1 -0.74657 0.40369 0.48659 -1 0.010322 -0.0027968 0.99989 -1 -0.53795 -0.11375 0.73909 -1 -0.13681 -0.35782 0.8635 -1 -0.12159 0.27849 0.9118 -1 -0.16766 -0.39768 0.83006 -1 0.29805 -0.50668 0.70782 -1 0.62574 0.072221 0.67249 -1 0.0006656 -0.73404 0.58344 -1 0.64587 -0.045277 0.65758 -1 -0.0095404 -0.82772 0.50398 -1 -0.085966 0.44392 0.81509 -1 0.22893 -0.90869 0.41556 -1 0.13189 0.099967 0.97298 -1 -0.77533 0.26331 0.51147 -1 0.54235 -0.35094 0.65882 -1 -0.20228 0.71957 0.57196 -1 -0.088098 0.36418 0.86902 -1 0.30462 0.32451 0.82029 -1 0.88823 0.10862 0.44899 -1 -0.42547 -0.88726 0.37974 -1 0.13367 0.54365 0.73094 -1 -0.081148 0.82809 0.50041 -1 -0.93484 0.049544 0.41628 -1 0.89317 0.31122 0.40877 -1 -0.26057 -0.13095 0.91847 -1 0.11942 0.15746 0.9617 -1 -0.34891 -0.2193 0.84381 -1 -0.29093 -0.89079 0.41555 -1 0.85876 0.75467 0.27063 1 1.4226 -0.46729 0.10623 1 -1.6697 0.54353 0.045812 1 -1.3195 -0.70812 0.10619 1 -0.8986 0.58513 0.31668 1 0.13148 1.6095 0.073705 1 1.4205 -0.98667 0.050218 1 -1.4273 -0.71239 0.078499 1 1.9577 0.03531 0.021628 1 -1.2312 -1.1153 0.063313 1 -0.89216 1.7071 0.024472 1 -1.1713 -0.20108 0.24355 1 0.89782 -0.78214 0.24224 1 -1.1546 1.4454 0.032641 1 1.243 -0.80497 0.11158 1 -0.87375 -0.85593 0.22401 1 1.9353 0.19302 0.022765 1 1.2912 -0.6132 0.1296 1 -0.65443 -1.6805 0.03868 1 1.7824 -0.029985 0.041669 1 0.89566 1.6875 0.025993 1 1.1034 1.2859 0.056641 1 1.6442 -0.7412 0.038665 1 -0.4692 -1.3515 0.12916 1 1.2313 0.54202 0.16369 1 0.065903 -1.9192 0.025031 1 0.036806 -1.5109 0.10185 1 1.7471 -0.91768 0.020353 1 -0.41398 -1.679 0.050271 1 1.2024 1.1914 0.056978 1
Kalian bisa memplotkan dalam scatter3 seperti dibawah ini
Kode lengkapnya seperti berikut
figure scatter(dataset.x,dataset.y) figure hold on scatter(dataset.x(dataset.kelas==-1),dataset.y(dataset.kelas==-1),100,'filled'); scatter(dataset.x(dataset.kelas==1),dataset.y(dataset.kelas==1),100,'filled'); grid on hold off xlabel('x'),ylabel('y'); title('Sebaran Data X Y') figure hold on scatter3(dataset.x(dataset.kelas==-1),dataset.y(dataset.kelas==-1),dataset.z(dataset.kelas==-1),100,'filled'); scatter3(dataset.x(dataset.kelas==1),dataset.y(dataset.kelas==1),dataset.z(dataset.kelas==1),100,'filled'); grid on hold off xlabel('x'),ylabel('y'),zlabel('z'); title('Sebaran Data X Y Z')
Bagaimana menurut kalian mengenai Buku Pemrograman Matlab-Visualisasi Data menggunakan Grafik? Sangat menarik untuk segera kalian coba