Jenis diagram lain

Memilih bar, histogram, scatter, dan stem sesuai bentuk data yang divisualkan.

Daftar isi

Kurva garis yang dihasilkan plot hanya satu pilihan di antara banyak bentuk diagram, dan pemilihan bentuk itu menentukan apakah data terbaca atau justru tertutup. Topik ini membahas diagram batang untuk perbandingan kategori, histogram untuk distribusi, diagram sebar untuk hubungan dua variabel, dan diagram batang tegak untuk data diskret. Setelah topik ini, jenis diagram dapat dipilih berdasarkan bentuk data yang tersedia dan pertanyaan yang ingin dijawab oleh figur.

Memilih diagram sesuai bentuk data#

Setiap jenis diagram menjawab satu jenis pertanyaan. Perbandingan antar kategori dibaca dari panjang batang, distribusi nilai dibaca dari tinggi kolom histogram, hubungan dua variabel dibaca dari pola sebaran titik, dan deret diskret dibaca dari tinggi batang tegak pada tiap indeks. Tabel berikut merangkum padanan yang lazim antara bentuk data dan diagram yang tepat.

Bentuk dataDiagram yang tepatFungsi
Perbandingan beberapa kategoriDiagram batangbar
Distribusi satu variabelHistogramhist, histogram
Hubungan dua variabel kontinuDiagram sebarscatter
Deret diskret berindeksBatang tegak per indeksstem

Pemilihan yang tepat juga menyangkut jumlah data. Kategori bekerja baik sampai sekitar sepuluh batang, sedangkan ribuan titik sebar lebih informatif daripada ribuan batang. Kesalahan pemilihan umumnya bukan soal sintaks, melainkan soal memaksakan satu bentuk pada data yang bentuknya berbeda, dan contoh kasusnya dibahas pada bagian Kesalahan umum.

Diagram batang untuk perbandingan kategori#

Panggilan bar(x, y) menggambar batang tegak pada tiap posisi x dengan tinggi y, dan lebar batang dihitung otomatis agar batang berdampingan tanpa bertumpuk. Batang paling informatif ketika x memuat sedikit kategori dan y memuat satu nilai ringkasan per kategori, misalnya rata-rata. Skrip berikut membandingkan rata-rata nilai ujian pada empat mata kuliah.

matlab batang-nilai.m
% batang-nilai.m: diagram batang rata-rata nilai per mata kuliah
mataKuliah = [1 2 3 4];
rataRata = [72 80 68 84];
bar(mataKuliah, rataRata);
xlabel('Mata kuliah');
ylabel('Rata-rata nilai');
title('Rata-rata nilai ujian per mata kuliah');
grid on;
print('-dsvg', 'batang-nilai.svg');

Empat batang hasil skrip itu tampak pada figur berikut.

GnuplotProduced by GNUPLOT 6.0 patchlevel 2gnuplot_plot_1agnuplot_plot_2agnuplot_plot_3agnuplot_plot_4agnuplot_plot_5agnuplot_plot_6agnuplot_plot_7agnuplot_plot_8agnuplot_plot_9a0204060801001234Rata-rata nilaiMata kuliahRata-rata nilai ujian per mata kuliah
Rata-rata nilai ujian pada empat mata kuliah sebagai diagram batang

Beberapa seri pada kategori yang sama digambar dengan satu matriks sebagai argumen kedua. Matriks berukuran banyak kategori kali banyak seri menghasilkan batang berkelompok (grouped bar), yakni batang tiap seri berdampingan dalam satu kelompok kategori. Skrip berikut membandingkan dua kelompok belajar pada tiga mata kuliah.

matlab batang-berkelompok.m
% batang-berkelompok.m: diagram batang berkelompok untuk dua kelompok belajar
mataKuliah = [1 2 3];
kelompokA = [70 82 75];
kelompokB = [64 77 90];
bar(mataKuliah, [kelompokA' kelompokB']);
xlabel('Mata kuliah');
ylabel('Rata-rata nilai');
title('Rata-rata nilai per kelompok belajar');
legend('Kelompok A', 'Kelompok B');
grid on;
print('-dsvg', 'batang-berkelompok.svg');

Enam batang dalam tiga kelompok hasil skrip itu tampak sebagai berikut.

GnuplotProduced by GNUPLOT 6.0 patchlevel 2Kelompok AKelompok Agnuplot_plot_2agnuplot_plot_3agnuplot_plot_4agnuplot_plot_5agnuplot_plot_6agnuplot_plot_7aKelompok BKelompok Bgnuplot_plot_9agnuplot_plot_10agnuplot_plot_11agnuplot_plot_12agnuplot_plot_13a020406080100123Rata-rata nilaiMata kuliahRata-rata nilai per kelompok belajar
Diagram batang berkelompok dua kelompok belajar pada tiga mata kuliah

Nilai x pada contoh berupa angka 1 sampai 4 karena label teks pada sumbu kategori belum dibahas. Makna tiap angka bergantung pada konteks data, dan angka kecil sengaja dipilih agar posisi batang mudah dihitung ulang. Label teks kategori dapat dipasang kemudian melalui xticklabels setelah diagram digambar.

Histogram untuk distribusi#

Histogram membagi rentang nilai ke dalam sejumlah interval yang disebut bin, lalu menghitung banyaknya data yang jatuh pada tiap interval, dan menggambarkan hasil hitungan sebagai batang. Bentuk yang muncul memperlihatkan pusat data, sebarannya, dan kemiringannya, sehingga histogram menjawab pertanyaan tentang distribusi yang tidak dijawab oleh nilai rata-rata saja. Skrip berikut membagi nilai ujian dua puluh siswa ke dalam enam interval dengan fungsi hist.

matlab histogram-nilai.m
% histogram-nilai.m: distribusi nilai ujian dengan hist
nilai = [62 70 68 75 82 79 88 91 85 77 74 66 73 81 86 90 69 71 78 84];
hist(nilai, 6);
xlabel('Rentang nilai');
ylabel('Banyak siswa');
title('Distribusi nilai ujian dua puluh siswa');
grid on;
print('-dsvg', 'histogram-nilai.svg');

Distribusi dua puluh nilai hasil skrip itu tampak pada figur berikut.

GnuplotProduced by GNUPLOT 6.0 patchlevel 2gnuplot_plot_1agnuplot_plot_2agnuplot_plot_3agnuplot_plot_4agnuplot_plot_5agnuplot_plot_6agnuplot_plot_7agnuplot_plot_8agnuplot_plot_9agnuplot_plot_10agnuplot_plot_11agnuplot_plot_12a012346065707580859095Banyak siswaRentang nilaiDistribusi nilai ujian dua puluh siswa
Distribusi nilai ujian dua puluh siswa pada enam interval
matlab MATLAB: histogram dengan pengaturan interval
% tidak-dijalankan
% Padanan MATLAB modern: fungsi histogram dengan tepi interval eksplisit
nilai = [62 70 68 75 82 79 88 91 85 77 74 66 73 81 86 90 69 71 78 84];
histogram(nilai, 'BinMethod', 'integers');
xlabel('Rentang nilai');
ylabel('Banyak siswa');
title('Distribusi nilai ujian');

Perbedaan penting kedua fungsi ada pada pengaturan interval. Fungsi hist menerima jumlah interval atau pusat interval, sedangkan histogram mengelola tepi interval melalui properti seperti BinMethod dan BinEdges sehingga interval dapat dikendalikan lebih presisi. Hasil gambar keduanya berwujud sama, dan pengetahuan tentang hist tetap berguna ketika kode harus berjalan di kedua implementasi.

Diagram sebar untuk hubungan dua variabel#

Diagram sebar menempatkan tiap data sebagai satu titik pada bidang dua variabel tanpa menghubungkannya dengan garis. Pola yang muncul, misalnya kecenderungan naik atau kelompok yang terpisah, menunjukkan hubungan antar variabel yang tidak terlihat pada tiap variabel terpisah. Panggilan scatter(x, y, s, c) menambah dua saluran informasi, yakni ukuran titik melalui vektor s dan warna titik melalui vektor c. Skrip berikut memetakan jam belajar terhadap nilai ujian dengan warna yang mengikuti nilai tugas.

matlab diagram-sebar.m
% diagram-sebar.m: sebar jam belajar terhadap nilai ujian delapan siswa
jam = [1 2 3 4 5 6 7 8];
nilai = [55 58 62 61 67 70 68 74];
ukuran = 60 * ones(size(jam));
tugas = [62 70 68 74 78 76 82 86];
scatter(jam, nilai, ukuran, tugas, 'filled');
xlabel('Jam belajar per pekan');
ylabel('Nilai ujian');
title('Nilai ujian terhadap jam belajar');
grid on;
print('-dsvg', 'diagram-sebar.svg');

Delapan titik dengan warna bergradasi hasil skrip itu tampak pada figur berikut.

GnuplotProduced by GNUPLOT 6.0 patchlevel 2556065707512345678gnuplot_plot_1agnuplot_plot_2agnuplot_plot_3agnuplot_plot_4agnuplot_plot_5agnuplot_plot_6agnuplot_plot_7agnuplot_plot_8aNilai ujianJam belajar per pekanNilai ujian terhadap jam belajar
Nilai ujian terhadap jam belajar dengan warna mengikuti nilai tugas

Warna titik dipetakan melalui peta warna yang berlaku pada figur, dari gelap untuk nilai kecil ke terang untuk nilai besar. Peta warna bawaan berbeda antar implementasi, dan skala warnanya lazim dilengkapi colorbar agar pembaca dapat mengubah warna menjadi nilai. Ukuran titik pada contoh diseragamkan karena data tidak memuat besaran ketiga yang layak dikodekan sebagai ukuran, dan penggunaan ukuran acak justru merusak pembacaan.

Diagram stem untuk data diskret#

Deret diskret, seperti respon sistem pada indeks sampel, memiliki nilai hanya pada indeks bulat dan tidak memiliki makna di antara dua indeks. Diagram stem(n, x) menggambarkan sifat itu dengan menggambar batang tegak dari garis nol sampai nilai tiap sampel dan menutup ujungnya dengan penanda. Skrip berikut memvisualkan respon sampel sistem orde satu yang nilainya meluruh dengan faktor 0,7.

matlab diagram-stem.m
% diagram-stem.m: respon sampel sistem orde satu dengan stem
n = 0:10;
h = 0.7 .^ n;
stem(n, h, 'filled');
xlabel('Indeks sampel n');
ylabel('Respon h[n]');
title('Respon sampel sistem orde satu');
grid on;
print('-dsvg', 'diagram-stem.svg');

Sebelas batang tegak yang meluruh hasil skrip itu tampak pada figur berikut.

GnuplotProduced by GNUPLOT 6.0 patchlevel 200.20.40.60.810246810gnuplot_plot_1agnuplot_plot_2agnuplot_plot_3aRespon h[n]Indeks sampel nRespon sampel sistem orde satu
Respon sampel sistem orde satu yang meluruh dengan faktor 0,7

Operator .^ pada perhitungan h wajib karena pangkat dikerjakan per elemen pada vektor n. Bentuk stem juga kerap dipakai untuk koefisien deret Fourier dan sinyal hasil pengambilan sampel, dua contoh data yang sama-sama berindeks diskret. Batang yang tidak terhubung garis membedakan stem dari diagram batang kategori, karena jarak antar indeks pada stem bermakna urutan, bukan kategori yang berdiri sendiri.

Kesalahan umum#

  • Memakai diagram batang untuk data kontinu yang padat. Data pengukuran dengan ratusan titik menghasilkan ratusan batang yang saling menempel sehingga figur menjadi blok padat dan bentuk kurvanya hilang. Data kontinu digambar dengan plot, sedangkan bar disisakan untuk kategori.
  • Jumlah interval histogram yang tidak sesuai banyaknya data. Interval yang terlalu banyak membuat tiap batang memuat satu atau dua data sehingga bentuk distribusi pecah, sedangkan interval yang terlalu sedikit menyembunyikan ciri distribusi. Aturan awal yang wajar adalah sekitar lima sampai sepuluh interval untuk data berukuran puluhan, lalu disesuaikan setelah bentuknya dilihat.
  • Ukuran dan warna titik yang diisi nilai acak. Fungsi pembangkit acak menghasilkan figur yang berbeda pada tiap eksekusi sehingga figur tidak dapat direproduksi atau dibandingkan. Saluran ukuran dan warna diisi besaran nyata dari data, dan pada seluruh contoh jalur ini data ditulis literal demi hasil yang deterministik.

Ringkasan#

  • Perbandingan kategori memakai bar, dan beberapa seri pada kategori yang sama digambar dengan satu matriks sebagai batang berkelompok.
  • Distribusi nilai memakai histogram, dengan hist yang berjalan di kedua implementasi dan histogram sebagai bentuk modern di MATLAB.
  • Hubungan dua variabel kontinu memakai scatter, dengan ukuran dan warna sebagai saluran informasi tambahan yang diisi besaran nyata dari data.
  • Deret diskret berindeks memakai stem karena nilai antar indeks tidak bermakna, dan pangkat perhitungannya memakai operator .^.

Referensi#