0Pricing
Pandas & NumPy Academy · Pelajaran

Plot Garis dan Sebaran

Plot data kontinu dengan ax.plot() dan titik diskret dengan ax.scatter(), sambil mengatur warna, penanda, dan gaya garis.

Plot Garis dan Sebaran adalah pelajaran Pandas & NumPy Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.

Garis dan Sebaran: Jenis Plot Utama

Plot garis menghubungkan titik data berurutan dengan garis dan ideal untuk memvisualisasikan tren dari waktu ke waktu atau fungsi kontinu. Plot sebar menggambar setiap titik secara terpisah tanpa menghubungkannya dengan garis, sehingga cocok untuk mengeksplorasi hubungan antara dua variabel numerik. Keduanya dibuat pada objek Axes Matplotlib: ax.plot() untuk garis dan ax.scatter() untuk titik sebar.

ax.plot() untuk Grafik Garis

ax.plot(x, y) menggambar garis yang menghubungkan titik data sesuai urutannya. Teruskan nilai x sebagai argumen pertama dan nilai y sebagai argumen kedua. Keduanya dapat berupa daftar Python, array NumPy, atau Series Pandas. Jika hanya satu argumen yang diteruskan, Matplotlib otomatis menggunakan indeks (0, 1, 2, ...) sebagai sumbu-x. Metode ini mengembalikan daftar objek Artist Line2D.

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, y)  # basic line plot
ax.set_title('Sine Wave')
ax.set_xlabel('x')
ax.set_ylabel('sin(x)')
# plt.show()
plt.close()

Mengatur Gaya dan Warna Garis

Argumen kata kunci ax.plot() yang paling umum: color (nama, heksadesimal, atau tuple RGB), linewidth (atau lw), linestyle (atau ls): '-' utuh, '--' putus-putus, ':' bertitik, '-.' garis-titik, marker (bentuk pada setiap titik data), dan markersize. Gabungkan linestyle dan marker untuk menampilkan garis sekaligus setiap titik data.

fig, ax = plt.subplots(figsize=(7, 4))

# Solid blue line with circle markers
ax.plot(x, np.sin(x), color='steelblue', lw=2, ls='-',
        marker='o', markersize=4, label='sin(x)')

# Dashed red line
ax.plot(x, np.cos(x), color='crimson', lw=1.5, ls='--', label='cos(x)')

ax.legend()
plt.close()

Menggambar Beberapa Garis

Panggil ax.plot() beberapa kali untuk menumpuk beberapa garis pada Axes yang sama. Matplotlib otomatis menggilir palet warna bawaan. Selalu teruskan kata kunci label untuk setiap garis agar ax.legend() dapat memberi label secara otomatis. Letakkan pemanggilan legend setelah semua pemanggilan plot agar semua garis disertakan.

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

np.random.seed(0)
dates = pd.date_range('2024-01', periods=12, freq='ME')
fig, ax = plt.subplots(figsize=(8, 4))

for product in ['A', 'B', 'C']:
    sales = np.random.randint(50, 200, 12)
    ax.plot(dates, sales, marker='o', label=f'Product {product}')

ax.set_title('Monthly Sales by Product')
ax.legend()
plt.close()

Menggambar DataFrames Pandas Secara Langsung

DataFrames Pandas memiliki metode .plot() yang langsung membuat grafik Matplotlib. Teruskan ax=ax untuk menggambar pada objek Axes yang sudah ada. df.plot(ax=ax) menggambar semua kolom sebagai garis terpisah dengan indeks DataFrame sebagai sumbu-x. Setelah itu, Anda tetap dapat menerapkan semua penyesuaian Matplotlib pada objek ax.

df = pd.DataFrame(
    np.random.randn(12, 3),
    index=pd.date_range('2024', periods=12, freq='ME'),
    columns=['North', 'South', 'West']
).cumsum()

fig, ax = plt.subplots(figsize=(8, 4))
df.plot(ax=ax, linewidth=1.5)
ax.set_title('Cumulative Revenue by Region')
ax.set_ylabel('Revenue (cumulative)')
plt.close()

ax.scatter() untuk Plot Sebar

ax.scatter(x, y) menggambar setiap titik secara terpisah tanpa menghubungkannya dengan garis. Berbeda dari ax.plot(), scatter tidak menganggap data sudah terurut. Parameter utama: c (warna, dapat berupa array untuk memberi warna per titik), s (ukuran titik, juga dapat berupa array), cmap (peta warna saat c berupa numerik), dan alpha (transparansi 0–1 untuk menangani tumpang tindih plot).

np.random.seed(42)
x = np.random.randn(100)
y = 2 * x + np.random.randn(100)

fig, ax = plt.subplots(figsize=(6, 5))
ax.scatter(x, y, color='steelblue', alpha=0.6, s=40)
ax.set_xlabel('Feature X')
ax.set_ylabel('Target Y')
ax.set_title('Feature vs Target')
plt.close()

Mewarnai Titik Sebar berdasarkan Kategori

Teruskan array numerik ke parameter c dan peta warna cmap untuk mewarnai titik sebar berdasarkan variabel ketiga. Tambahkan bilah warna dengan plt.colorbar(scatter_obj) untuk menyediakan skala. Teknik ini disebut varian grafik gelembung ketika parameter s (ukuran) juga diubah berdasarkan variabel keempat.

categories = np.random.choice([0, 1, 2], size=100)

fig, ax = plt.subplots(figsize=(6, 5))
scatter = ax.scatter(x, y, c=categories, cmap='Set1',
                     alpha=0.7, s=60, edgecolors='none')
fig.colorbar(scatter, ax=ax, label='Category')
ax.set_title('Scatter Coloured by Category')
plt.close()

Menambahkan Garis Tren

Plot sebar dengan garis tren yang disesuaikan menyampaikan informasi tentang setiap titik data sekaligus pola keseluruhannya. Gunakan np.polyfit(x, y, 1) untuk menghitung penyesuaian linear, evaluasi dengan np.poly1d(coeffs)(x_range), lalu tumpangkan hasilnya menggunakan ax.plot() di atas plot sebar. Garis tren sebaiknya lebih tipis dan memiliki gaya berbeda agar dapat dibedakan dari titik data.

fig, ax = plt.subplots(figsize=(6, 5))
ax.scatter(x, y, alpha=0.4, s=30, color='steelblue', label='Data')

# Fit and plot linear trend line
coeffs = np.polyfit(x, y, 1)
x_line = np.linspace(x.min(), x.max(), 100)
y_line = np.poly1d(coeffs)(x_line)
ax.plot(x_line, y_line, color='red', lw=2, label='Linear fit')

ax.legend()
ax.set_title('Scatter with Trend Line')
plt.close()

Mewarnai Pita Kepercayaan dengan fill_between

ax.fill_between(x, y_lower, y_upper) mengisi area di antara dua kurva. Ini umum digunakan untuk menampilkan interval kepercayaan di sekitar garis rata-rata, pita simpangan baku, atau rentang min/maks. Teruskan alpha untuk membuat warna isian semi-transparan sehingga data di bawahnya tetap terlihat.

x_range = np.linspace(0, 2 * np.pi, 100)
mean = np.sin(x_range)
upper = mean + 0.2
lower = mean - 0.2

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x_range, mean, color='steelblue', lw=2, label='Mean')
ax.fill_between(x_range, lower, upper,
                color='steelblue', alpha=0.2, label='±0.2 band')
ax.legend()
ax.set_title('Line with Confidence Band')
plt.close()

Batas Sumbu dan Garis Kisi

Atur rentang yang terlihat dengan ax.set_xlim(min, max) dan ax.set_ylim(min, max). Aktifkan garis kisi dengan ax.grid(True). Sesuaikan kisi dengan argumen kata kunci: linestyle, linewidth, dan alpha. Kisi samar dengan alpha=0.3 membantu membaca nilai yang tepat tanpa membuat grafik tampak penuh. Panggil ax.set_axisbelow(True) untuk menggambar kisi di belakang titik data.

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, np.sin(x), 'b-', lw=2)

ax.set_xlim(0, 2 * np.pi)
ax.set_ylim(-1.2, 1.2)
ax.grid(True, linestyle='--', alpha=0.5)
ax.set_axisbelow(True)  # grid behind data
ax.set_title('Sine with Grid')
plt.close()

Alpha dan Tumpang Tindih Plot

Saat banyak titik data bertumpuk di wilayah yang sama pada plot sebar, titik-titik individual menjadi tidak terlihat — kondisi ini disebut tumpang tindih plot. Solusi paling sederhana adalah mengurangi opasitas dengan alpha (0.0 = sepenuhnya transparan, 1.0 = sepenuhnya opak). Tetapkan alpha=0.3 atau lebih rendah agar wilayah padat tampak lebih gelap (karena beberapa titik semi-transparan bertumpuk), sedangkan wilayah yang jarang tetap terang. Untuk kumpulan data yang sangat besar (jutaan titik), pertimbangkan hexbin atau estimasi kepadatan kernel.

np.random.seed(1)
x_dense = np.random.randn(1000)
y_dense = np.random.randn(1000)

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

# Without alpha: overplotting hides density
ax1.scatter(x_dense, y_dense, s=10)
ax1.set_title('No alpha (overplotted)')

# With alpha: density visible
ax2.scatter(x_dense, y_dense, s=10, alpha=0.2)
ax2.set_title('alpha=0.2 (density visible)')

plt.tight_layout()
plt.close()

Pemeriksaan Singkat

Uji pemahaman Anda tentang plot garis dan plot sebar pada Matplotlib dari pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini, Anda mempelajari bahwa ax.plot() membuat grafik garis dengan kendali penuh atas warna, gaya garis, dan penanda; ax.scatter() membuat plot sebar dengan warna dan ukuran per titik melalui c dan s; ax.fill_between() menambahkan pita kepercayaan; dan ax.grid() menambahkan garis kisi agar lebih mudah dibaca. Selanjutnya, kita akan membuat grafik batang dan histogram untuk memvisualisasikan data kategorikal dan distribusi.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Plot Garis dan Sebaran” gratis?

Ya — teks lengkap “Plot Garis dan Sebaran” 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 Garis dan Sebaran”?

Plot data kontinu dengan ax.plot() dan titik diskret dengan ax.scatter(), sambil mengatur warna, penanda, dan gaya garis. 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 2 dari 4.

Berapa lama pelajaran “Plot Garis dan Sebaran” 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. Arsitektur Figure dan Axes
  2. Plot Garis dan Sebaran
  3. Diagram Batang dan Histogram
  4. Label, Judul, dan Menyimpan Figure
← Kembali ke Pandas & NumPy Academy