Lewati ke konten utama

Plot garis deret waktu Matplotlib

Tutorial ini membahas cara membuat dan menyesuaikan plot garis deret waktu di matplotlib.
Diperbarui 28 Sep 2026  · 8 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Deret waktu adalah kumpulan observasi data yang diindeks berdasarkan waktu dalam urutan kronologis. Observasi data ini umumnya (namun tidak selalu) dicatat pada interval waktu yang teratur. Deret waktu sering digunakan di perbankan, perdagangan, pemasaran, sains, dan industri lain. Representasi visual yang paling umum dari data deret waktu adalah plot garis dengan waktu di sumbu x dan nilai terukur di sumbu y.

Dalam tutorial ini, kita akan melihat cara membuat dan menyesuaikan plot garis deret waktu di matplotlib, pustaka plotting Python utama.

Memulai plotting deret waktu dengan matplotlib

Mengimpor pustaka dan memuat data

Pertama, kita akan mengimpor pustaka Python yang diperlukan dan memuat data – dataset Kaggle Daily Exchange Rates per Euro 1999-2023. Kita juga akan melakukan pembersihan data dasar:

import matplotlib
import matplotlib.pyplot as plt
import pandas as pd
from datetime import datetime

df = pd.read_csv('euro-daily-hist_1999_2022.csv')
df = df.iloc[:, [0, 4, 28, -2]]
df.columns = ['Date', 'CAD', 'NZD', 'USD']

for col in ['CAD', 'NZD', 'USD']:
    df = df[df[col] != '-']
    df[col] = pd.to_numeric(df[col])
   
df = df[df['Date'] >= '2022-12-01'].reset_index(drop=True)
print(df.head(3))
print(f'\nThe date range: {df.Date.min()}/{ df.Date.max()}')

Keluaran:

Date     CAD     NZD     USD
0  2023-01-27  1.4479  1.6759  1.0865
1  2023-01-26  1.4568  1.6799  1.0895
2  2023-01-25  1.4544  1.6792  1.0878

The date range: 2022-12-01/2023-01-27

Mengonversi string tanggal/waktu ke objek datetime

Untuk bekerja secara efisien dengan deret waktu, kita perlu mengonversi string tanggal atau waktu menjadi objek datetime menggunakan fungsi pandas.to_datetime:

df['Date'] = pd.to_datetime(df['Date'])
print(df['Date'].dtypes)

Keluaran:

datetime64[ns]

Jika Anda perlu penyegaran mengenai cara bekerja dengan deret waktu di Python, Anda dapat memanfaatkan kursus Manipulating Time Series Data in Python.

Menetapkan kolom datetime sebagai indeks dataframe

Sekarang, mari tetapkan kolom Date sebagai indeks dataframe menggunakan metode set_index:

df = df.set_index('Date')
print(df.head(3))

Keluaran:

              CAD     NZD     USD
Date                             
2023-01-27  1.4479  1.6759  1.0865
2023-01-26  1.4568  1.6799  1.0895
2023-01-25  1.4544  1.6792  1.0878

Membuat plot deret waktu satu garis dasar di matplotlib

Untuk membuat plot garis deret waktu dasar, kita menggunakan metode standar matplotlib.pyplot.plot(x, y):

plt.plot(df.index, df['CAD'])

Keluaran:

image1.png

Membuat plot deret waktu multi-garis di matplotlib

Untuk membuat plot deret waktu multi-garis, kita cukup menjalankan metode matplotlib.pyplot.plot(x, y) sebanyak yang diperlukan: 

plt.plot(df.index, df['CAD'])
plt.plot(df.index, df['NZD'])
plt.plot(df.index, df['USD'])

image4.png

Menggunakan for loop mengoptimalkan kode di atas:

for col in ['CAD', 'NZD', 'USD']:
    plt.plot(df.index, df[col])

Keluaran: 

image4.png

Menyesuaikan plot deret waktu matplotlib

Agar plot garis deret waktu kita lebih mudah dibaca dan menarik, kita perlu menyesuaikannya. Kita dapat menerapkan beberapa penyesuaian umum matplotlib, seperti menyesuaikan ukuran gambar, menambahkan dan menyesuaikan judul plot dan label sumbu, memodifikasi properti garis, menambahkan dan menyesuaikan marker, dan sebagainya. Penyesuaian lain bersifat spesifik untuk plot garis deret waktu, seperti menyesuaikan tick pada sumbu waktu beserta labelnya atau menyorot periode waktu tertentu.

Menyesuaikan figure dan axes

Dengan metode standar matplotlib, kita dapat menyesuaikan figure dan axes pada plot garis deret waktu dengan berbagai cara, seperti dijelaskan pada komentar kode di bawah ini:

# Menyesuaikan ukuran figure
fig = plt.subplots(figsize=(16, 5))

# Membuat plot
plt.plot(df.index, df['CAD'])

# Menambahkan judul plot dan menyesuaikan ukuran font
plt.title('EUR-CAD rate', fontsize=20)

# Menambahkan label sumbu dan menyesuaikan ukuran font
plt.xlabel('Date', fontsize=15)
plt.ylabel('Rate', fontsize=15)

# Memutar tick sumbu dan menyesuaikan ukuran font
plt.xticks(rotation=30, fontsize=15)

# Mengubah resolusi plot - memperbesar periode dari 15.12.2022 hingga 15.01.2023
plt.xlim(pd.Timestamp('2022-12-15'), pd.Timestamp('2023-01-15'))

Keluaran: 

image8.png

Menyesuaikan properti garis

Seperti pada plot garis biasa, kita dapat mengubah properti garis pada plot deret waktu, seperti warna, gaya, atau ketebalan garis:

plt.plot(df.index, df['CAD'], color='green', linestyle='dashed', linewidth=3)

Keluaran:

image5.png

Menambahkan dan menyesuaikan marker

Seperti pada plot garis mana pun, kita dapat menempatkan marker pada plot garis deret waktu dan menyesuaikan simbol, warna, warna tepi, serta ukurannya:

plt.plot(df.index, df['CAD'], marker='o', markerfacecolor='yellow', markeredgecolor='red', markersize=8)

image9.png

Menyesuaikan tick sumbu waktu

Mari terlebih dahulu membuat plot garis deret waktu matplotlib dasar dengan beberapa penyesuaian penting:

fig = plt.subplots(figsize=(16, 5))
plt.plot(df.index, df['CAD'])
plt.title('EUR-CAD rate', fontsize=20)
plt.xlabel('Date', fontsize=15)
plt.ylabel('Rate', fontsize=15)
plt.xlim(df.index.min(), df.index.max())

Keluaran: 

image7.png

Kita melihat bahwa secara bawaan matplotlib menampilkan beberapa tick acak beserta labelnya. Namun, kita mungkin ingin mengontrol tick apa yang ditampilkan pada sumbu waktu. Dalam hal ini, kita perlu menyediakan daftar tanggal (atau waktu) yang diperlukan sebagai string atau timestamp pandas ke metode matplotlib.pyplot.xticks:

fig = plt.subplots(figsize=(16, 5))
plt.plot(df.index, df['CAD'])
plt.title('EUR-CAD rate', fontsize=20)
plt.xlabel('Date', fontsize=15)
plt.ylabel('Rate', fontsize=15)
plt.xlim(df.index.min(), df.index.max())

# Mendefinisikan dan menampilkan tick sumbu waktu
ticks = ['2022-12-05', '2023-01-02', '2023-01-20']
plt.xticks(ticks)

Keluaran: 

image6.png

Di atas, matplotlib menampilkan tick yang dipilih dan secara otomatis memberi label.

Jika kita ingin menampilkan semua tick, kita harus memberikan daftar indeks deret waktu ke metode matplotlib.pyplot.xticks:

fig = plt.subplots(figsize=(16, 5))
plt.plot(df.index, df['CAD'])
plt.title('EUR-CAD rate', fontsize=20)
plt.xlabel('Date', fontsize=15)
plt.ylabel('Rate', fontsize=15)
plt.xlim(df.index.min(), df.index.max())

# Mendefinisikan dan menampilkan semua tick sumbu waktu
ticks = list(df.index)
plt.xticks(ticks, rotation=45)

Keluaran: 

image2.png

Menyesuaikan label tick sumbu waktu

Label tick sumbu waktu pada plot garis di atas bisa terlihat berlebihan. Kita mungkin ingin memformatnya agar lebih mudah dibaca. Untuk tujuan ini, kita dapat menggunakan kelas matplotlib.dates.DateFormatter dengan memberikan string format strftime yang mencerminkan bagaimana kita ingin melihat tanggal/waktu. Lalu, kita berikan formatter ini ke metode matplotlib.axis.XAxis.set_major_formatter:

fig, ax = plt.subplots(figsize=(16, 5))
plt.plot(df.index, df['CAD'])
plt.title('EUR-CAD rate', fontsize=20)
plt.xlabel('Date', fontsize=15)
plt.ylabel('Rate', fontsize=15)
plt.xlim(df.index.min(), df.index.max())
ticks = list(df.index)
plt.xticks(ticks, rotation=45)

# Memformat label tick sumbu waktu
ax.xaxis.set_major_formatter(matplotlib.dates.DateFormatter('%b %d'))

Keluaran: 

image10.png

Halaman dokumentasi ini menyediakan daftar lengkap semua kode format strftime yang mungkin.

Menyorot periode waktu tertentu

Terkadang, kita mungkin ingin memberi arsiran pada periode waktu tertentu di plot garis deret waktu. Untuk tujuan ini, kita dapat menggunakan metode matplotlib.pyplot.axvspan. Metode ini membutuhkan dua argumen wajib: titik waktu awal dan akhir dari periode yang diminati dalam format datetime. Metode ini juga dapat menerima beberapa parameter opsional untuk menyesuaikan tampilan area yang disorot, seperti warna, warna tepi, transparansi, ketebalan garis, atau pola isian.

Mari terapkan teknik ini pada plot dari bagian sebelumnya:

fig, ax = plt.subplots(figsize=(16, 5))
plt.plot(df.index, df['CAD'])
plt.title('EUR-CAD rate', fontsize=20)
plt.xlabel('Date', fontsize=15)
plt.ylabel('Rate', fontsize=15)
plt.xlim(df.index.min(), df.index.max())
ticks = list(df.index)
plt.xticks(ticks, rotation=45)
ax.xaxis.set_major_formatter(matplotlib.dates.DateFormatter('%b %d'))

# Menyorot periode waktu dari 15.12.2022 hingga 1.01.2023 dan menyesuaikan area berarsir
plt.axvspan(datetime(2022, 12, 15), datetime(2023, 1, 1), facecolor='yellow', alpha=0.5, hatch='/', edgecolor='red', linewidth=5)

Keluaran: 

image11.png

Menyimpan plot garis deret waktu matplotlib ke file

Kita dapat memilih untuk menyimpan plot garis deret waktu ke file gambar alih-alih hanya menampilkannya. Untuk melakukannya, kita menggunakan metode matplotlib.pyplot.savefig dengan memasukkan nama file. Sebagai contoh, mari kembali ke plot dasar pertama kita:

plt.plot(df.index, df['CAD'])

# Menyimpan plot hasil ke file
plt.savefig('time series line plot.png')

image1.png

Di atas, kita menyimpan plot ke file bernama time series line plot.png dan terletak di tempat yang sama dengan program kita saat ini.

Kesimpulan

Singkatnya, dalam tutorial ini, kita membahas cara membuat dan menyesuaikan plot garis deret waktu di matplotlib, dengan menggunakan metode matplotlib umum dan yang lebih lanjut, yang khusus untuk visualisasi deret waktu.

Setelah mempelajari teknik-teknik dasar ini, Anda mungkin ingin menggali lebih dalam dalam bekerja dengan data deret waktu dan memvisualisasikannya di Python. Dalam hal ini, pertimbangkan untuk mengeksplorasi sumber daya komprehensif, ramah pemula, dan end-to-end berikut:

Topik
Python
Visualisasi Data

Kursus Python

Kursus

Pengantar Visualisasi Data dengan Matplotlib

4 jam
236.9K
Pelajari cara membuat, menyesuaikan, dan membagikan visualisasi data menggunakan Matplotlib.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

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

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

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