Last chance! 50% off DataCamp Premium
Sale ends in
Visualisasi data dan penceritaan data sangat penting bagi data scientist karena mengubah wawasan data yang kompleks menjadi narasi yang menarik dan mudah dipahami untuk komunikasi yang efektif. Meski banyak pustaka baru dan canggih bermunculan, Matplotlib tetap menjadi salah satu pustaka plotting paling populer dan menjadi fondasi bagi pustaka yang lebih baru.
Tutorial ini berfokus pada salah satu jenis plot Matplotlib yang paling umum, yaitu plot garis. Plot garis sangat baik untuk menampilkan tren dan fluktuasi data dari waktu ke waktu, menghubungkan titik-titik (secara harfiah) untuk menggambarkan apa yang terjadi dengan jelas.
Tutorial ini dimulai dari dasar pembuatan plot garis sederhana dan kemudian berlanjut ke teknik yang lebih lanjut, seperti menambahkan informasi statistik ke plot. Pada akhir tutorial, Anda akan memahami dengan baik cara membuat berbagai jenis plot garis di Matplotlib dan cara menggunakannya untuk menyampaikan wawasan data Anda secara efektif kepada orang lain.
Siap meningkatkan keterampilan visualisasi data Anda? Mari mulai!
Sebelum mulai membuat plot garis dengan Matplotlib, kita perlu menyiapkan lingkungan kerja. Ini mencakup pemasangan Matplotlib, mengimpor pustaka yang diperlukan, dan pra-pemrosesan dataset yang akan kita gunakan untuk contoh.
Untuk memasang Matplotlib, Anda dapat menggunakan pip, pengelola paket untuk Python. Cukup buka terminal atau command prompt dan ketik:
pip install matplotlib
Perintah ini akan memasang versi terbaru Matplotlib di mesin Anda.
Setelah Matplotlib terpasang, kita perlu mengimpornya bersama pustaka lain seperti NumPy dan Pandas. NumPy adalah pustaka untuk bekerja dengan array, sedangkan Pandas untuk manipulasi dan analisis data.
Untuk mengimpor pustaka-pustaka ini, cukup ketik kode berikut:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
Untuk tutorial ini, kita akan menggunakan dataset yang berisi harga harian indeks DJIA. Dataset mencakup lima kolom:
Setelah memuat dataset, kita akan melakukan pra-pemrosesan data dasar seperti mengganti nama kolom, mengonversinya menjadi variabel datetime, dan mengurutkan data berdasarkan tanggal secara menaik.
Berikut kodenya:
# Load the dataset into a Pandas DataFrame
df = pd.read_csv("HistoricalPrices.csv")
# Rename the column to remove an additional space
df = df.rename(columns = {' Open': 'Open', ' High': 'High', ' Low': 'Low', ' Close': 'Close'})
# Convert the date column to datetime
df['Date'] = pd.to_datetime(df['Date'])
# Sort the dataset in the ascending order of date
df = df.sort_values(by = 'Date')
Sekarang setelah lingkungan siap dan dataset dimuat, kita dapat lanjut membuat plot garis menggunakan Matplotlib.
Kita akan mulai dengan membuat plot garis dasar dan kemudian menyesuaikannya agar tampak lebih rapi dan informatif.
Untuk membuat plot garis, kita akan menggunakan fungsi plt.plot(). Fungsi ini menerima dua parameter; nilai sumbu x dan nilai sumbu y. Dalam kasus kita, kolom tanggal akan menjadi nilai sumbu x, sedangkan kolom close akan menjadi nilai sumbu y. Berikut kodenya:
# Extract the date and close price columns
dates = df['Date']
closing_price = df['Close']
# Create a line plot
plt.plot(dates, closing_price)
# Show the plot
plt.show()
Saat Anda menjalankan kode di atas, Anda akan melihat plot garis dasar dari saham DJIA.

Matplotlib menyediakan banyak opsi kustomisasi yang dapat kita manfaatkan sesuai kebutuhan.
Secara default, fungsi plt.plot() menggambar garis biru. Namun, Anda dapat mengubah warna garis dengan meneruskan parameter color ke fungsi tersebut. Parameter color dapat menerima string yang merepresentasikan nama warna atau kode heksadesimal.
Berikut contohnya:
# Plot dengan warna merah
plt.plot(dates, closing_price, color='red')
# Show the plot
plt.show()
Kode ini akan menggambar garis merah alih-alih biru seperti di bawah ini:

Plot garis dasar berwarna merah
Anda juga dapat mengubah lebar garis dengan meneruskan parameter linewidth ke fungsi plt.plot(). Parameter linewidth menerima nilai bilangan pecahan yang merepresentasikan lebar garis.
Berikut contohnya:
# Menambah ketebalan garis
plt.plot(dates, closing_price, linewidth=3)
# Show the plot
plt.show()
Kode ini akan menggambar garis dengan lebar 3 alih-alih lebar default seperti di bawah ini:

Garis pada plot lebih tebal karena linewidth lebih tinggi
Anda dapat mengubah gaya garis dengan meneruskan parameter linestyle ke fungsi plt.plot(). Parameter linestyle menerima string yang mewakili gaya garis. Dokumentasi matplotlib menyediakan daftar gaya yang lengkap.

Berikut cara menggunakannya dalam kode:
# Plot garis satu per satu: solid, dotted, dashed, dan dashdot
plt.plot(dates, closing_price, linestyle='solid') # Gaya garis default
plt.plot(dates, closing_price, linestyle='dotted')
plt.plot(dates, closing_price, linestyle='dashed')
plt.plot(dates, closing_price, linestyle='dashdot')
# Show the plot
plt.show()
Marker dapat digunakan untuk menyoroti titik tertentu pada plot garis. Berbagai jenis simbol dapat digunakan sebagai marker dan dapat dirujuk dari dokumentasi matplotlib.
Berikut contoh penggunaan marker pada plot garis:
# Tambahkan marker silang untuk setiap titik
plt.plot(df['Date'], df['Close'], marker='x')
# Show the plot
plt.show()
Pada kode di atas, kita menggunakan marker silang (x) untuk menyoroti harga Close saham DJIA seperti terlihat di bawah:

Agar plot lebih informatif, kita dapat menambahkan label sumbu dan judul. Kita dapat melakukannya dengan menggunakan fungsi plt.xlabel(), plt.ylabel(), dan plt.title() masing-masing.
Berikut contohnya:
plt.plot(dates, closing_price, color='red', linewidth=2)
plt.xlabel('Date')
plt.ylabel('Closing Price')
plt.title('DJIA Stock Price')
# Show the plot
plt.show()
Kode ini akan menggambar garis merah dengan lebar 2, dengan sumbu x berlabel 'Date', sumbu y berlabel 'Closing Price', dan judul 'DJIA Stock Price'.

Kita juga dapat menambahkan garis kisi pada plot agar lebih mudah dibaca. Kita dapat melakukannya dengan menggunakan fungsi plt.grid(). Fungsi plt.grid() menerima nilai boolean yang menyatakan apakah kisi harus ditampilkan.
Berikut contohnya:
plt.plot(dates, closing_price, color='red', linewidth=2)
plt.xlabel('Date')
plt.ylabel('Closing Price')
plt.title('DJIA Stock Price')
# Add the grid
plt.grid(True)
# Show the plot
plt.show()
Anda akan melihat kisi ditambahkan ke plot:

Dalam beberapa kasus, Anda mungkin ingin menggambar beberapa garis pada grafik yang sama. Untuk melakukannya, Anda dapat memanggil fungsi plt.plot() beberapa kali dengan data yang berbeda untuk setiap pemanggilan. Berikut contohnya:
# Plot garis untuk harga Open dan Close
plt.plot(df['Date'], df['Open'])
plt.plot(df['Date'], df['Close'])
plt.title('DJIA Open and Close Prices')
plt.xlabel('Date')
plt.ylabel('Price')
plt.show()
Pada kode di atas, kita menggambar harga Open dan Close saham DJIA pada grafik yang sama.

Ada kalanya Anda ingin merepresentasikan dua variabel dengan skala berbeda pada plot yang sama. Dalam situasi seperti ini, menggunakan sumbu kembar adalah cara efektif untuk memvisualisasikan hubungan antarvariabel tanpa mengurangi kejelasan skala masing-masing.
Untuk membuat plot garis dengan sumbu kembar, kita perlu menggunakan fungsi twinx(). Fungsi ini membuat sumbu y baru yang berbagi sumbu x yang sama dengan plot asli.
Berikut contohnya:
# Create a new variable for demonstration purposes
df['High_minus_Low'] = df['High'] - df['Low']
# Create a basic line plot for the Close prices
fig, ax1 = plt.subplots()
ax1.plot(df['Date'], df['Close'], color='blue', label='Close Price')
ax1.set_xlabel('Date')
ax1.set_ylabel('Closing Price', color='blue')
ax1.tick_params(axis='y', labelcolor='blue')
# Create a twin axis for the High_minus_Low variable
ax2 = ax1.twinx()
ax2.plot(df['Date'], df['High_minus_Low'], color='green', label='High - Low')
ax2.set_ylabel('High minus Low', color='green')
ax2.tick_params(axis='y', labelcolor='green')
# Add a title and show the plot
plt.title('DJIA Stock Price and High-Low Difference with Twin Axes')
plt.show()
Dan hasil plot dengan sumbu kembar:

Selain memvisualisasikan tren dan pola dalam data, plot garis juga dapat menampilkan informasi statistik seperti garis regresi dan batang galat (error bars).
Garis regresi adalah garis yang paling sesuai dengan titik data pada plot dan dapat digunakan untuk memodelkan serta memprediksi nilai di masa depan. Kita dapat menambahkan garis regresi ke plot garis dengan menggunakan fungsi polyfit() dari pustaka NumPy, yang menyesuaikan garis regresi polinomial ke titik data kita.
import matplotlib.dates as mdates
# Convert Date column to numeric value
df['Date'] = mdates.date2num(df['Date'])
# Add regression line to plot
coefficients_open = np.polyfit(df['Date'], df['Open'], 1)
p_open = np.poly1d(coefficients_open)
coefficients_close = np.polyfit(df['Date'], df['Close'], 1)
p_close = np.poly1d(coefficients_close)
fig, ax = plt.subplots()
ax.plot(df['Date'], df['Open'], '.', label='Open Price')
ax.plot(df['Date'], p_open(df['Date']), '-', label='Open Regression Line')
ax.plot(df['Date'], df['Close'], '.', label='Close Price')
ax.plot(df['Date'], p_close(df['Date']), '-', label='Close Regression Line')
ax.set_title('DIJA Stock Prices')
ax.set_xlabel('Date')
ax.set_ylabel('Price')
ax.legend()
# Format x-axis labels as dates
date_form = mdates.DateFormatter("%Y-%m-%d")
ax.xaxis.set_major_formatter(date_form)
plt.gcf().autofmt_xdate()
plt.show()
Pada kode ini, kita terlebih dahulu mengonversi tanggal menjadi nilai numerik menggunakan fungsi date2num() lalu menggunakan fungsi polyfit() untuk memperoleh koefisien garis regresi. Kita gunakan fungsi poly1d() untuk memplot garisnya. Titik data asli diplot sebagai titik, sedangkan garis regresi diplot sebagai garis solid.

Error bar adalah representasi grafis dari variabilitas data dan dapat digunakan untuk menunjukkan ketidakpastian dalam pengukuran.
Ini sangat berguna ketika Anda memperkirakan adanya kesalahan dalam proses pengumpulan data, seperti data suhu, data kualitas udara, dan sebagainya. Meskipun harga saham pasti, mari kita asumsikan potensi kesalahan sebesar satu simpangan baku dan memplotnya menggunakan fungsi errorbar di Matplotlib.
# Calculate standard deviation of data
std = df['Close'].std()
# Add error bars to plot
plt.errorbar(df['Date'], df['Close'], yerr=std/2, fmt='.', label='Close Price')
plt.title('DIJA Stock Prices')
plt.xlabel('Date')
plt.ylabel('Price')
plt.legend()
plt.show()
Pada kode ini, kita terlebih dahulu menghitung simpangan baku harga Close dalam dataset. Lalu kita menggunakan fungsi errorbar() untuk menambahkan error bar ke plot garis, dengan ukuran error bar disetel menjadi setengah dari simpangan baku.

Teknik-teknik ini memungkinkan kita menambahkan informasi statistik ke plot garis dan mendapatkan wawasan yang lebih mendalam dari data kita.
Plot garis adalah alat yang kuat untuk memvisualisasikan tren dan pola dalam data, dan Matplotlib menyediakan antarmuka yang ramah pengguna untuk membuatnya.
Langkah berikutnya, Anda dapat mengikuti kursus Intermediate Python, di mana Anda menerapkan semua yang telah dipelajari pada studi kasus statistik hacker.
Kami berharap tutorial ini membantu Anda memulai membuat plot garis di Matplotlib. Kami juga membahas secara mendalam plot matplotlib lainnya dalam tutorial lain, yang dapat memberi gambaran singkat tentang apa lagi yang bisa Anda lakukan dengan Matplotlib.
Teruslah bereksplorasi dan bereksperimen untuk membuat visualisasi yang memukau dan menemukan wawasan dari data Anda!
{count, plural, one {blog} other {blogs}}
David Woods
13 mnt
{count, plural, one {blog} other {blogs}}
Hugo Bowne-Anderson
13 mnt
{count, plural, one {blog} other {blogs}}
Dario Radečić
15 mnt

{count, plural, one {blog} other {blogs}}
Javier Canales Luna
14 mnt