Data penjualan dua belas bulan adalah cerita tentang perubahan: kapan naik, kapan tertebas turun, kapan pulih. Line plot adalah grafik paling sering dipakai untuk cerita semacam itu karena mata kita sangat peka terhadap arah garis. Fungsi plot() di MATLAB menerima pasangan koordinat, menghubungkan titik-titik tersebut dengan segmen garis, selesai — tetapi di balik kesederhanaan itu ada sistem LineSpec (warna-garis-penanda) yang mengatur tampilan banyak seri data dalam satu panggilan. Cakupan chapter ini:

  • plot(x, y) dasar dan cara MATLAB menghubungkan titik
  • Beberapa seri dalam satu panggilan plot(x, y1, x, y2)
  • LineSpec: warna, gaya garis, dan penanda
  • Properti LineWidth dan MarkerSize
  • Sumbu datetime dan pointer ke skala logaritmik

Menggambar Garis Pertama #

Aturannya: plot(x, y) menerima dua vektor sama panjang — x berisi posisi horizontal, y posisi vertikal — lalu menggambar satu objek Line. Mekanismenya: MATLAB mengambil pasangan (x(i), y(i)) berurutan sesuai indeks, menghubungkannya dengan segmen garis dari titik ke-1 ke titik ke-2, ke-3, dan seterusnya. Urutan vektor menentukan bentuk: data terurut waktu menghasilkan garis tren, data acak menghasilkan zig-zag yang kacau. Garis tidak otomatis terurut; MATLAB tidak pernah mengurutkan data untuk kita.

matlab
bulan = 1:12;
unit  = [120 135 98 142 150 160 155 148 170 165 180 190];
plot(bulan, unit);

Grafik yang dihasilkan: satu garis biru solid menghubungkan dua belas titik, sumbu x berjalan dari 1 sampai 12, sumbu y menskala otomatis dari 98 sampai 190. Nilai 98 di bulan ke-3 terlihat sebagai lembah kecil di awal tahun — pola yang mudah terlewat pada tabel angka.

Beberapa Seri dalam Satu Panggilan #

Aturannya: plot() menerima pasangan (x, y, LineSpec) yang berulang, jadi dua seri cukup satu panggilan. Mekanismenya: setiap pasangan membuat satu objek Line tersendiri di axes yang sama; MATLAB otomatis memberi warna berbeda dan mengisi legend berdasarkan urutan penampilan. Kita bandingkan penjualan aktual dengan target rencana yang tumbuh linear:

matlab
bulan  = 1:12;
unit   = [120 135 98 142 150 160 155 148 170 165 180 190];  % aktual
target = 100 + 10 * bulan;                                   % rencana linear

f = figure('visible', 'off');
plot(bulan, unit, 'b-o', ...       % seri 1: garis penuh biru + penanda lingkaran
     bulan, target, 'r--s', ...    % seri 2: garis putus merah + penanda kotak
     'LineWidth', 1.5, 'MarkerSize', 6);
xlabel('Bulan');
ylabel('Unit terjual');
title('Penjualan tahunan: aktual vs target');
legend('Aktual', 'Target');
grid on;
saveas(f, 'line-penjualan.png');
fprintf('Grafik tersimpan: line-penjualan.png\n');
delete(f);

fprintf('jumlah titik    : %d\n', numel(bulan));
fprintf('aktual  min/max : %d %d\n', min(unit), max(unit));
fprintf('target  min/max : %d %d\n', min(target), max(target));

Output yang Dihasilkan:

text
Grafik tersimpan: line-penjualan.png
jumlah titik    : 12
aktual  min/max : 98 190
target  min/max : 110 220

Mari kita bedah baris-baris kode di atas:

  1. Baris 6-8 (plot(bulan, unit, 'b-o', bulan, target, 'r--s', ...)): satu panggilan plot dengan dua pasangan data; setiap pasangan dibingkai LineSpec-nya sendiri ('b-o' dan 'r--s').
  2. Baris 8 ('LineWidth', 1.5, 'MarkerSize', 6): pasangan name-value yang berlaku untuk kedua seri karena ditulis setelah semua pasangan data — ketebalan garis 1.5 poin dan penanda berdiameter 6 poin.
  3. Baris 12 (legend('Aktual', 'Target')): label diambil sesuai urutan seri; tanpa legend, pembaca harus menebak garis mana yang mana.
  4. Baris 13 (grid on): mengaktifkan garis kisi sehingga nilai antar bulan lebih mudah dibaca.
  5. Baris 14-16 (saveas, delete): menyimpan figur ke PNG untuk uji headless, mencatat namanya lewat fprintf, lalu menghapus figur dari memori.

LineSpec: Warna, Garis, Penanda #

Aturannya: satu string pendek seperti 'r-o' mengodekan tiga komponen sekaligus — warna, gaya garis, dan penanda — tanpa perlu memanggil pasangan name-value. Mekanismenya: parser plot membaca karakter string satu per satu; maksimal satu karakter warna, satu kode garis, satu kode penanda, dan urutan penulisannya bebas ('-or' sama dengan 'r-o').

KomponenKodeArti
Warnar, g, b, k, y, m, c, wmerah, hijau, biru, hitam, kuning, magenta, cyan, putih
Garis-, --, :, -.solid, putus-putus panjang, titik-titik, putus-titik
Penandao, s, d, ^, v, +, x, *, ., p, hlingkaran, kotak, wajik, segitiga atas/bawah, plus, silang, bintang, titik, pentagram, heksagram

Tiga aturan kombinasi yang perlu diingat:

  • 'r-o' (warna + garis + penanda): titik data ditandai dan dihubungkan garis.
  • 'r--' tanpa penanda: hanya garis — cocok untuk kurva halus dengan banyak titik.
  • 'ro' tanpa kode garis: hanya titik — garis penghubung hilang, hasilnya menyerupai scatter plot.

Mengatur Ketebalan dan Ukuran Penanda #

Aturannya: properti visual objek Line diatur lewat pasangan name-value — LineWidth (default 0.5 poin), MarkerSize (default 6 poin), Color, hingga MarkerFaceColor. Mekanismenya: pasangan name-value yang ditulis setelah semua pasangan data diterapkan ke seluruh seri sekaligus, sedangkan properti objek yang sudah jadi diubah lewat handle:

matlab
h = plot(bulan, unit, 'b-o');
set(h, 'LineWidth', 2, 'MarkerSize', 8);

Sintaks set(h, ...) bekerja identik di MATLAB dan Octave; di MATLAB R2014b+ kita juga bisa menulis h.LineWidth = 2 dengan sintaks titik. Garis 2 poin dengan penanda 8 poin adalah titik awal yang nyaman untuk grafik yang akan ditampilkan di layar presentasi — default 0.5 poin terlihat tipis saat diproyeksikan.

Sumbu Waktu dan Skala Logaritmik #

Data tren nyata jarang berupa angka bulan 1–12; data nyata membawa tanggal. Dua info singkat sebelum kita melangkah:

  • Sumbu datetime: MATLAB menerima vektor datetime langsung sebagai sumbu x — plot(tanggal, unit) menampilkan label tanggal yang diformat otomatis dan memformat ulang labelnya saat figur di-pan. Tipe datetime dibahas di chapter DateTime dan Duration pada section Struktur Data MATLAB; contoh chapter ini memakai angka bulan agar bisa diuji di Octave.
  • Skala logaritmik: fungsi semilogx, semilogy, dan loglog menggambar plot dengan salah satu atau kedua sumbu berskala log. Kapan memakainya dan apa jebakannya dibahas tuntas di chapter Axis Limits dan Scales.

Berkas contoh.m pada bagian bawah halaman memuat versi utuh contoh di atas ditambah pelacakan bulan dengan penjualan tertinggi lewat [~, ibulan] = max(unit).

Ringkasan #

plot(x, y) menghubungkan titik sesuai urutan indeks, satu panggilan bisa memuat banyak seri dengan LineSpec per seri, dan properti LineWidth/MarkerSize mengendalikan bobot visual garis serta penanda. String 'r-o' memadatkan warna-garis-penanda dalam satu argumen, legend memberi nama tiap seri, dan sumbu datetime atau skala logaritmik tinggal satu langkah lagi ketika data kita menuntutnya. Ketika yang menarik justru hubungan dua variabel — bukan urutan waktunya — alat yang tepat adalah scatter plot, materi chapter berikutnya.