Lewati ke konten utama

Histogram ggplot2 di R: Tutorial Lengkap dengan Contoh

Pelajari cara membuat dan menyesuaikan histogram ggplot2 di R, dari plot dasar hingga visualisasi berwarna, ber-facet, dan dengan overlay densitas.
Diperbarui 28 Sep 2026  · 7 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Histogram memperlihatkan bentuk distribusi suatu dataset secara sekilas. Dalam tutorial ini, saya akan memandu Anda membuat dan menyesuaikan histogram menggunakan ggplot2, pustaka plotting R yang paling banyak digunakan dan bagian inti dari ekosistem tidyverse. ggplot2 mengikuti grammar of graphics yang memungkinkan Anda membangun visualisasi kompleks dengan melapiskan elemen plot. Untuk pendekatan base R, lihat tutorial histogram dengan base R kami.

Ringkasnya

  • Gunakan geom_histogram() di dalam pemanggilan ggplot() untuk menggambar histogram

  • Kendalikan jumlah bin dengan bins atau ukuran bin dengan binwidth di dalam geom_histogram()

  • Sesuaikan warna batang dengan argumen color (garis tepi) dan fill (isi)

  • Tambahkan kurva densitas menggunakan geom_density() setelah mengatur y = after_stat(density)

  • Pisahkan menurut kategori menggunakan fill = variable dalam aes() atau facet_grid() untuk panel terpisah

Apa Itu Histogram?

Histogram adalah visualisasi yang menampilkan distribusi frekuensi pada variabel kontinu (numerik). Histogram memungkinkan kita melihat jumlah observasi dalam rentang yang dicakup oleh variabel kontinu.

Mulai dengan ggplot2

Untuk mengikuti tutorial ini, Anda perlu memasang R dan paket berikut: ggplot2, readr, dan dplyr. Kode di bagian berikut akan memasangnya jika Anda belum memilikinya.

Memasang paket

Pertama, kita perlu mengimpor pustaka ggplot2 menggunakan fungsi library. Ini akan memuat semua fungsi bawaan yang tersedia di pustaka ggplot2. Jika Anda belum memasang ggplot2, Anda perlu memasangnya dengan menjalankan perintah install.packages(). Kita akan melakukan hal yang sama untuk pustaka readr, yang memungkinkan kita membaca file CSV, dan dplyr, yang memudahkan kita bekerja dengan data yang dibaca. 

install.packages("ggplot2")
install.packages("readr")
install.packages("dplyr")
library(ggplot2)
library(readr)
library(dplyr)

Memuat dataset

Untuk tutorial ini, kita akan menggunakan dataset perumahan ini, yang mencakup detail tentang berbagai listing rumah, termasuk ukuran rumah, jumlah kamar, harga, dan informasi lokasi. 

Kita dapat membaca data menggunakan fungsi read_csv(). Kita bisa membacanya langsung dari URL atau mengunduh file CSV ke suatu direktori dan membacanya dari penyimpanan lokal. Argumen pertama read_csv() adalah lokasi data, dan atribut col_select memungkinkan kita memilih kolom yang kita minati. 

home_data <- read_csv(
    "https://raw.githubusercontent.com/rashida048/Datasets/master/home_data.csv",
    col_select = c(price, condition)
)

Kemudian kita dapat melihat beberapa baris pertama data menggunakan fungsi head():

head(home_data)

Baris awal dataset perumahan yang menampilkan kolom price dan condition

Cara Membuat Histogram dengan ggplot2

Sekarang kita dapat membuat histogram. Terlepas dari jenis grafik yang kita buat di ggplot2, kita selalu memulai dengan fungsi ggplot(), yang membuat kanvas untuk menambahkan elemen plot. Fungsi ini menerima dua parameter.

  • Argumen pertama adalah sebuah data frame. Di sini kita ingin menggunakan home_data.

  • Argumen kedua adalah pemetaan dari kolom dalam data frame ke estetika plot. Pemetaan ini harus memanggil fungsi aes(). Di sini, kita memetakan kolom price ke sumbu x.

Sejauh ini, kode kita adalah

ggplot(data = home_data, aes(x = price))

Ini tidak akan menggambar apa pun yang berguna dengan sendirinya. Untuk menjadikannya histogram, kita tambahkan geometri histogram menggunakan geom_histogram().

ggplot(data = home_data, aes(x = price)) +
  geom_histogram()

Histogram ggplot2 dasar untuk harga perumahan

Tambahkan statistik deskriptif ke histogram menggunakan geom_vline()

Kita dapat menambahkan statistik deskriptif ke plot menggunakan fungsi geom_vline(). Ini menambahkan geometri garis vertikal ke plot.

Pertama, kita hitung statistik deskriptif, dalam hal ini, harga rata-rata, menggunakan summarize() dari dplyr.

price_stats <- home_data |>
summarize(mean_price = mean(price))
price_stats
# A tibble: 1 × 1
  mean_price
      <dbl>
1    540088.

Fungsi ini menerima parameter xintercept, serta atribut opsional color dan linewidth untuk menyesuaikan warna dan ukuran garis. Kita akan menambahkan garis mean menggunakan tanda plus seperti pada bagian sebelumnya.

ggplot(home_data, aes(x = price)) +
    geom_histogram() +
    geom_vline(aes(xintercept = mean_price), price_stats, color = "red", linewidth = 2)

Perhatikan bahwa pada fungsi geom_, argumen mapping dan data ditukar dibandingkan dengan ggplot().

Histogram ggplot2 dengan garis rata-rata vertikal merah yang ditambahkan oleh geom_vline()

Memplot Densitas Probabilitas alih-alih Hitungan

Untuk menambahkan garis densitas probabilitas ke histogram, pertama kita ubah sumbu y agar diskalakan ke densitas. Dalam fungsi aes(), kita set y ke after_stat(density). 

Kemudian kita dapat menambahkan lapisan densitas ke grafik menggunakan fungsi geom_density(). Di sini kita set atribut color menjadi hijau dan atribut linewidth menjadi 2.

ggplot(home_data, aes(x = price, y = after_stat(density))) +
    geom_histogram() +
    geom_vline(aes(xintercept = mean_price), price_stats, color = "red", linewidth = 2) +
    geom_density(color = "green", linewidth = 2)

image4.png

Perhatikan bahwa angka pada sumbu y telah berubah.

Perhatikan bagaimana setiap lapisan mengikuti pola yang sama: tanda +, pemanggilan fungsi, dan argumen opsional. Anda dapat menambahkan fungsi geom_, statistik, dan tema tanpa harus mempelajari ulang sintaks untuk setiap kombinasi.

Perbarui pembinaan bin menggunakan bins

Kita dapat memperbarui pembinaan bin pada histogram ggplot2 menggunakan atribut bin. Kita set atribut bin sama dengan jumlah bin yang ingin ditampilkan pada grafik. Ini akan membantu kita melihat data yang lebih atau kurang detail dalam histogram. 

ggplot(data = home_data, aes(x = price)) +
  geom_histogram(bins = 100)

image12.png

Kita juga bisa mengatur lebar bin secara manual menggunakan atribut binwidth dari geom_histogram().

ggplot(data = home_data, aes(x = price)) +
  geom_histogram(binwidth = 50000)

image5.png

Terakhir, Anda dapat merapikan batas menggunakan atribut center atau boundary. Jika Anda ingin batas bin jatuh pada kelipatan tertentu, Anda bisa menggunakan atribut ini (hanya satu yang bisa digunakan pada satu waktu). Untuk memastikan bin berakhir pada nilai bilangan bulat, set atribut sama dengan 1.   

ggplot(data = home_data, aes(x = price)) +
  geom_histogram(boundary = 1)

Histogram ggplot2 dengan batas bin yang dirapikan menggunakan argumen boundary

Sesuaikan warna histogram

Di bagian ini, kita akan mengubah warna histogram. Kita dapat menyesuaikan warna garis tepi setiap batang menggunakan atribut color, dan mengubah isian batang menggunakan atribut fill pada geom_histogram(). Kita akan mengisi batang dengan biru dan mengubah warna garis tepi menjadi putih. 

ggplot(data = home_data, aes(x = price)) +
  geom_histogram(color = "white", fill = "blue")

Histogram ggplot2 dengan garis tepi batang putih dan isian biru

Sesuaikan warna histogram ggplot2 berdasarkan grup

Anda dapat menyesuaikan warna batang histogram. 

Mengubah estetika fill (di dalam fungsi aes()) akan mengubah warna bagian dalam batang berdasarkan nilai suatu variabel dalam dataset. Variabel tersebut sebaiknya bersifat kategorikal (factor) alih-alih bilangan bulat, sehingga kita dapat mengonversinya menggunakan fungsi factor(). Untuk contoh ini, kita akan melihat variabel condition, nilai dari 1 (kondisi buruk) hingga 5 (kondisi sangat baik). 

home_data <- home_data |>
    mutate(condition = factor(condition))

ggplot(data = home_data, aes(x = price, fill = condition)) +
    geom_histogram()

Histogram ggplot2 dengan batang berwarna menurut kategori kondisi perumahan

Tambahkan label dan judul menggunakan labs()

Berikutnya, kita tambahkan judul dan label ke grafik menggunakan fungsi labs(). Kita set atribut x, y, dan title sesuai label yang diinginkan. 

ggplot(data = home_data, aes(x = price)) +
  geom_histogram() +
  labs(x ='Price (USD)', y='Number of Listings', title = 'Housing Price Distributions')

Histogram ggplot2 dengan label sumbu x, sumbu y, dan judul kustom

Mengatur batas sumbu x menggunakan xlim()

Kita dapat mengatur batas sumbu x pada plot menggunakan fungsi xlim()  untuk memperbesar data yang kita minati. Misalnya, terkadang lebih membantu untuk fokus pada bagian tengah distribusi daripada ekor panjang yang saat ini terlihat saat kita melihat keseluruhan plot. 

Mengubah batas sumbu y juga dimungkinkan (menggunakan ylim()), tetapi ini kurang berguna untuk histogram karena nilai yang dihitung otomatis hampir selalu ideal.

Kita akan memperbesar harga antara $0 dan $2M.

ggplot(home_data, aes(x = price)) +
    geom_histogram(bins = 100) +
    xlim(0, 2000000)

Histogram ggplot2 diperbesar ke harga antara $0 dan $2M menggunakan xlim()

Ubah posisi legenda

Jika kita ingin memindahkan legenda pada grafik, misalnya ketika kita memvisualisasikan condition dalam warna berbeda, kita dapat menggunakan fungsi theme() dan atribut legend.position. Nilai yang dapat diterima legend.position adalah “bottom”, “top”, “left”, atau “right”. Anda juga dapat memberikan koordinat yang Anda inginkan untuk posisi legenda menggunakan c(x, y).

ggplot(home_data, aes(x = price, fill = condition)) +
    geom_histogram() +
    theme(legend.position = "bottom")

Menggunakan facet di ggplot2

Terakhir, kita dapat memvisualisasikan data dalam grup berbeda pada grafik terpisah menggunakan facet. Ini akan membagi visualisasi menjadi beberapa subplot untuk setiap kategori. Hal ini dapat dilakukan menggunakan fungsi facet_grid(). Kita akan memvisualisasikan distribusi harga berdasarkan nilai condition yang berbeda di bawah ini. 

ggplot(home_data, aes(x = price)) +
  geom_histogram() +  facet_grid(vars(condition))

Faceting dibahas lebih detail dalam tutorial Facets untuk ggplot di R.

image2.png

Penutup

Untuk membuat histogram di ggplot2, bangun dasar dengan ggplot(), berikan data frame dan pemetaan aes(), lalu tambahkan geom_histogram(). Setelah itu, tambahkan penyesuaian: labs() untuk judul sumbu, xlim() untuk memperbesar sumbu x, dan theme() untuk memindahkan legenda atau menyesuaikan gaya visual.

ggplot2 dibahas secara mendalam dalam jalur keterampilan Data Visualization in R, dimulai dengan Introduction to Data Visualization with ggplot2. Anda dapat mempelajari cara mengombinasikan ggplot2 dengan alat tidyverse lainnya dalam jalur keterampilan Tidyverse Fundamentals with R.

Untuk jenis plot ggplot2 lainnya selain histogram, lihat tutorial Graphics with ggplot2 kami, dan unduh salinan lembar contekan ggplot2 sebagai referensi praktis.


Author
Kevin Babitz
LinkedIn

Penulis Data Science | Analis Pemasaran Teknis Senior di Wayfair | MSE di Data Science dari University of Pennsylvania

Topik
R
Data Science
Visualisasi Data

Belajar R bersama DataCamp!

Kursus

Pengantar Visualisasi Data dengan ggplot2

4 jam
191.2K
Pelajari cara menghasilkan visualisasi data yang bermakna dan indah dengan ggplot2 dengan memahami grammar of graphics.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya