0Pricing
Pandas & NumPy Academy · Pelajaran

Plot Distribusi: histplot dan kdeplot

Visualisasikan bentuk distribusi numerik dengan sns.histplot dan tumpangkan estimasi kepadatan kernel dengan sns.kdeplot.

Plot Distribusi: histplot dan kdeplot adalah pelajaran Pandas & NumPy Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Pandas & NumPy Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.

Seaborn dan Plot Distribusi

Seaborn adalah pustaka visualisasi data statistik yang dibangun di atas Matplotlib. Pustaka ini menyediakan API tingkat tinggi untuk membuat plot yang indah dan informatif dengan kode minimal. Salah satu hal pertama yang ingin Anda pahami dari setiap set data adalah bentuk distribusinya — dan histplot serta kdeplot milik Seaborn merupakan alat utama untuk itu.

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# Load a built-in dataset
tips = sns.load_dataset('tips')
print(tips.head())

Membuat Histogram Dasar dengan histplot

sns.histplot(data, x='column') membuat histogram dari variabel numerik. Secara bawaan, Seaborn otomatis memilih jumlah bin yang sesuai menggunakan aturan Sturges. Anda dapat menyesuaikan jumlah bin dengan parameter bins, atau membiarkan Seaborn memilihnya secara otomatis. Tinggi setiap batang menunjukkan jumlah observasi dalam rentang tersebut.

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset('tips')

# Basic histogram of total bill amounts
sns.histplot(data=tips, x='total_bill')
plt.title('Distribution of Total Bill')
plt.xlabel('Total Bill ($)')
plt.show()

Mengendalikan Bin dan Parameter Stat

Parameter bins mengendalikan jumlah batang yang ditampilkan histogram — lebih banyak bin menampilkan detail yang lebih halus, tetapi dapat terlihat berisik. Parameter stat mengubah hal yang diwakili sumbu-y: 'count' (bawaan), 'density' (kepadatan probabilitas), 'probability' (proporsi observasi), atau 'percent'. Pemilihan stat='density' membuat histogram dari set data dengan ukuran berbeda dapat dibandingkan.

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset('tips')

fig, axes = plt.subplots(1, 2, figsize=(10, 4))

# Count histogram with 20 bins
sns.histplot(data=tips, x='total_bill', bins=20, ax=axes[0])
axes[0].set_title('Count (20 bins)')

# Density histogram
sns.histplot(data=tips, x='total_bill', stat='density', ax=axes[1])
axes[1].set_title('Density')

plt.tight_layout()
plt.show()

Menumpangkan KDE pada Histogram

Menetapkan kde=True dalam histplot menumpangkan kurva Estimasi Kepadatan Kernel (KDE) pada histogram. KDE adalah perkiraan kontinu yang mulus dari distribusi probabilitas yang mendasarinya. Kombinasi ini sangat efektif: histogram menunjukkan jumlah mentah tiap bin, sedangkan KDE mengungkapkan bentuk keseluruhan dan mendeteksi beberapa puncak (multimodalitas).

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset('tips')

# Histogram with KDE overlay
sns.histplot(data=tips, x='total_bill', kde=True, bins=25, color='steelblue')
plt.title('Bill Distribution with KDE Overlay')
plt.xlabel('Total Bill ($)')
plt.show()

Menggunakan kdeplot Secara Terpisah

sns.kdeplot() hanya menggambar kurva kepadatan yang mulus tanpa batang histogram. Ini berguna ketika membandingkan beberapa distribusi pada sumbu yang sama karena histogram yang tumpang tindih menjadi membingungkan, sedangkan kurva KDE yang tumpang tindih tetap mudah dibaca. Parameter fill=True memberi bayangan pada area di bawah kurva, sehingga kelompok lebih mudah dibedakan secara visual.

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset('tips')

# KDE plot for lunch vs dinner bills
sns.kdeplot(data=tips, x='total_bill', hue='time', fill=True, alpha=0.5)
plt.title('Bill Distribution: Lunch vs Dinner')
plt.xlabel('Total Bill ($)')
plt.show()

Parameter hue untuk Perbandingan Kelompok

histplot dan kdeplot menerima parameter hue yang membagi data berdasarkan kolom kategorikal dan menggambar setiap kelompok dengan warna berbeda. Ini memudahkan perbandingan distribusi antarkelompok. Saat menggunakan histplot dengan hue, tetapkan stat='density' agar kelompok dengan ukuran berbeda dapat dibandingkan secara adil.

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset('tips')

# Compare tip distributions by smoker status
sns.histplot(
    data=tips,
    x='tip',
    hue='smoker',
    stat='density',
    common_norm=False,
    bins=20,
    alpha=0.6
)
plt.title('Tip Distribution by Smoker Status')
plt.show()

Bandwidth dalam KDE: Parameter bw_adjust

KDE memiliki parameter penyetelan bernama bandwidth yang mengendalikan tingkat kemulusan kurva. Bandwidth kecil membuat kurva bergerigi dan terlalu menyesuaikan data; bandwidth besar membuat kurva terlalu mulus dan menyembunyikan fitur yang sebenarnya. Seaborn menggunakan bw_adjust (bawaan 1.0) sebagai pengali bandwidth yang dipilih secara otomatis — nilai di bawah 1 meningkatkan kekasaran, sedangkan nilai di atas 1 meningkatkan kemulusan.

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset('tips')

fig, axes = plt.subplots(1, 3, figsize=(12, 4))
bw_values = [0.3, 1.0, 3.0]

for ax, bw in zip(axes, bw_values):
    sns.kdeplot(data=tips, x='total_bill', bw_adjust=bw, ax=ax)
    ax.set_title(f'bw_adjust={bw}')

plt.tight_layout()
plt.show()

Distribusi 2D dengan histplot dan kdeplot

histplot dan kdeplot mendukung plot dua dimensi dengan memberikan parameter x dan y. Histogram 2D menampilkan kisi frekuensi berkode warna; KDE 2D menampilkan garis kontur dengan kepadatan yang sama. Plot ini mengungkapkan distribusi gabungan dua variabel numerik dan apakah keduanya berkorelasi.

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset('tips')

fig, axes = plt.subplots(1, 2, figsize=(12, 5))

# 2D histogram
sns.histplot(data=tips, x='total_bill', y='tip', ax=axes[0])
axes[0].set_title('2D Histogram')

# 2D KDE contour plot
sns.kdeplot(data=tips, x='total_bill', y='tip', fill=True, ax=axes[1])
axes[1].set_title('2D KDE Contours')

plt.tight_layout()
plt.show()

Menyesuaikan Tampilan dengan Tema Seaborn

Seaborn menyediakan tema bawaan melalui sns.set_theme(style=). Gaya yang tersedia adalah 'darkgrid', 'whitegrid', 'dark', 'white', dan 'ticks'. Anda juga dapat menetapkan palet dengan palette= atau sns.set_palette(). Pengaturan ini berlaku secara global untuk semua plot berikutnya dalam sesi, sehingga tampilan yang konsisten mudah dicapai.

import seaborn as sns
import matplotlib.pyplot as plt

# Apply a clean whitegrid theme
sns.set_theme(style='whitegrid', palette='muted')

tips = sns.load_dataset('tips')
sns.histplot(data=tips, x='total_bill', kde=True, bins=20)
plt.title('Styled Distribution Plot')
plt.show()

# Reset to defaults when done
sns.reset_defaults()

Menafsirkan Bentuk Distribusi

Saat membaca plot distribusi, perhatikan empat ciri utama. Pusat: di mana massa data terkonsentrasi (mean/median)? Sebaran: seberapa lebar distribusinya (simpangan baku)? Kecondongan: apakah ekornya lebih panjang di kanan (kecondongan positif) atau di kiri (kecondongan negatif)? Modus: apakah distribusinya memiliki satu puncak (unimodal) atau lebih (bimodal/multimodal)? Distribusi bimodal sering menunjukkan adanya dua subpopulasi tersembunyi yang layak dipisahkan.

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

# Simulate a bimodal distribution
np.random.seed(42)
data = np.concatenate([
    np.random.normal(loc=20, scale=3, size=300),
    np.random.normal(loc=45, scale=5, size=200)
])

sns.histplot(data, kde=True, bins=40)
plt.title('Bimodal Distribution — Two Hidden Groups')
plt.xlabel('Value')
plt.show()

displot: Fungsi Distribusi Tingkat Figur

sns.displot() adalah pembungkus tingkat figur yang membuat Figure-nya sendiri dan mendukung pembuatan faset di sepanjang baris dan kolom menggunakan parameter col= dan row=. Berikan kind='hist', kind='kde', atau kind='ecdf' untuk mengganti jenis plot. ECDF (Fungsi Distribusi Kumulatif Empiris) sangat berguna karena menunjukkan fraksi data yang berada di bawah setiap nilai tanpa memerlukan penentuan bin.

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset('tips')

# Faceted KDE by day of week
sns.displot(
    data=tips,
    x='total_bill',
    col='day',
    col_wrap=2,
    kind='kde',
    fill=True
)
plt.suptitle('Bill Distributions by Day', y=1.02)
plt.show()

Pemeriksaan Singkat

Uji pemahaman Anda tentang plot distribusi Seaborn dari pelajaran ini.

Rangkuman Pelajaran

Dalam pelajaran ini, Anda telah mempelajari bahwa sns.histplot membuat histogram dengan bin dan parameter statistik yang dapat disesuaikan, sns.kdeplot menggambar kurva kepadatan yang halus dan ideal untuk membandingkan kelompok, serta parameter hue membagi kedua jenis plot berdasarkan variabel kategorikal untuk perbandingan berdampingan. Selanjutnya, kita akan mempelajari plot perbandingan kategorikal seperti plot kotak, plot batang, dan plot biola.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Plot Distribusi: histplot dan kdeplot” gratis?

Ya — teks lengkap “Plot Distribusi: histplot dan kdeplot” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Pandas & NumPy Academy, upgrade ke CoddyKit PRO. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Plot Distribusi: histplot dan kdeplot”?

Visualisasikan bentuk distribusi numerik dengan sns.histplot dan tumpangkan estimasi kepadatan kernel dengan sns.kdeplot. Kamu berlatih Pandas & NumPy Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Pandas & NumPy Academy?

Tidak diperlukan pengalaman sebelumnya. Pandas & NumPy Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Plot Distribusi: histplot dan kdeplot” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Pandas & NumPy Academy ini?

Ya. Setiap pelajaran Pandas & NumPy Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Plot Distribusi: histplot dan kdeplot
  2. Plot Kategorikal: boxplot, barplot, violinplot
  3. Plot Sebaran dan Plot Pasangan
  4. Peta Panas untuk Matriks Korelasi
← Kembali ke Pandas & NumPy Academy