Bagan garis (line chart) adalah salah satu jenis visualisasi yang paling banyak digunakan. Line chart sangat sesuai untuk menampilkan perubahan seiring waktu atau trend, serta hubungan antar variabel numerik yang kontinyu.
Matplotlib adalah library Python yang powerful untuk membuat berbagai jenis bagan, termasuk bagan garis. Dalam tutorial ini, kita akan mempelajari cara membuat bagan garis menggunakan Matplotlib.
import matplotlib.pyplot as plt
import numpy as np
Line chart sederhana
Untuk membuat line chart kita dapat menggunakan fungsi plt.plot(). Dalam contoh ini kita akan menggunakan fungsi np.arange() untuk membuat array integer 0-4 sebagai sumbu x, dan fungsi y = 2x + 1 sebagai sumbu y.
x = np.arange(0, 5, 1) #sumbu x
y = 2*x + 1 # sumbu y
plt.plot(x, y) # plot diagram
plt.show() # tampilkan
Menambahkan label, judul, dan legend pada barchart
Untuk menambahkan judul, kita dapat gunakan fungsi plt.title(), sedangkan untuk menambahkan label pada sumbu x dan y, gunakan plt.xlabel() dan plt.ylabel().
Untuk menambahkan legend, kita perlu melakukan 2 hal, yaitu :
- set label untuk garis, dengan menggunakan parameter 'label' di fungsi plt.plot()
- tampilkan legend dengan fungsi plt.legend()
x = np.arange(0, 5, 1) #sumbu x
y = 2*x + 1 # sumbu y
plt.plot(x, y, label = 'y = 2x+1') # plot diagram
plt.xlabel("sumbu X") # label sumbu x
plt.ylabel("sumbu Y") # label sumbu y
plt.title("Diagram Garis Sederhana") # judul
plt.legend() #tambahkan legend
plt.show() # tampilkan
Menggunakan antarmuka object oriented
Selain menggunakan antarmuka fungsional, kita dapat menggunakan antarmuka object oriented seperti contoh berikut ini. Cara ini sangat sesuai jika kita akan membuat beberapa subplot sekaligus.
Untuk menggunakan antarmuka object oriented, kita harus membuat object axes dengan memanggil fungsi plt.subplots().
Object tersebut kemudian kita gunakan untuk memanggil fungsi ax.plot(), ax.legend(), dan fungsi ax.set().
fig, ax = plt.subplots()
ax.plot(x, y, label = "y = 2x + 1") # plot diagram
ax.set(title = "Judul", #judul
xlabel ="sumbu X", #sumbu x
ylabel = "sumbu y") #sumbu y
ax.legend() #tampilkan legend
plt.show() # tampilkan
Multiple Line Chart
Ketika kita perlu membandingkan trend atau membandingkan hubungan antar variabel dari beberapa kelompok data berbeda kita dapat menggunakan multiple line chart, yaitu diagram yang menunjukkan beberapa garis yang mewakili tiap kelompok data.
Misalnya kita ingin memplot 3 kumpulan data berikut
x = np.arange(0, 5, 1) # nilai x
y1 = 2*x + 3 # nilai y untuk garis pertama
y2 = x*x # nilai y untuk garis kedua
y3 = -x + 10 # nilai y untuk garis ketiga
Dalam matplotlib, untuk membuat multiple line chart kita dapat melakukan satu panggilan fungsi sekaligus seperti contoh di bawah ini.
plt.plot(x, y1, x, y2, x, y3) # plot sekaligus 3 kelompok data
plt.show()
Akan tetapi cara plot seperti di atas tidak memungkinkan kita untuk melakukan customisasi dengan memanfaatkan parameter yang termasuk dalam **kwargs, seperti misalnya parameter label yang diperlukan untuk menampilkan legend.
Untuk itu, kita perlu memplot tiap-tiap kelompok data dengan pemanggilan fungsi secara terpisah.
plt.plot(x, y1, label='2x + 1') # garis pertama, x dan y1
plt.plot(x, y2, label='x^2') # garis kedua, x dan y2
plt.plot(x, y3, label='-x + 10') # garis kedua, x dan y3
# tambahkan label, judul, and legend
plt.xlabel('sumbu X')
plt.ylabel('sumbu Y')
plt.title('Beberapa Diagram Garis')
plt.legend()
# Show the plot
plt.show()
Mengubah warna dan jenis garis pada line chart
Dengan menggunakan parameter yang tersedia, kita dapat melakukan berbagai kustomisasi terhadap grafik yang kita buat.
Beberapa penyesuaian yang biasa dilakukan adalah : mengubah warna, jenis garis, dan menambahkan tanda alias marker pada tiap titik data.
Untuk mengubah warna garis, gunakan parameter color. Warna yang dapat digunakan dapat dilihat di sini.
Untuk mengubah jenis garis, gunakan parameter linestyle. Pilihan jenis garis yang dapat digunakan adalah : None, solid, dashed, dashdot, dan dotted.
Untuk menambahkan penanda titik data, gunakan parameter marker. Pilhan marker yang dapat digunakan bisa dilihat di sini.
plt.plot(x, y1, label='2x + 1',
color='blue', linestyle = 'solid', marker = 'x')
plt.plot(x, y2, label='x^2',
color='green', linestyle = 'dashdot', marker = '^')
plt.plot(x, y3, label='-x + 10',
color='red', linestyle = 'dotted', marker = 'o')
# tambahkan label, judul, and legend
plt.xlabel('sumbu X')
plt.ylabel('sumbu Y')
plt.title('Beberapa Diagram Garis', color = 'red')
plt.legend()
# Show the plot
plt.show()
Menggunakan Parameter fmt
Parameter fmt adalah parameter berupa string, yang pada dasarnya merupakan singkatan dari gabungan parameter marker-linetype-color.
fmt = '[marker][garis][warna]'
Masing-masing bersifat opsional. Misalnya untuk marker = x, linetype = 'dashdot', dan color = red, maka parameter fmt = 'x-.r'
Kombinasi lain seperti [warna][marker][garis] juga dapat digunakan (misalnya 'rx-.'), namun perlu diperhatikan bahwa parsingnya bisa menjadi ambigu.
Dengan menggunakan parameter fmt, plotting kode di atas dapat ditulis sebagai berikut
plt.plot(x, y1, 'x--b', label='2x + 1')
plt.plot(x, y2, '^-.g', label='x^2')
plt.plot(x, y3, 'o:r', label='-x + 10')
Pilihan marker, garis, dan warna yang dapat digunakan dapat dilihat di dokumentasi matplotlib berikut : matplotlib.pyplot.plot, pada bagian Notes.
Wrapping Up
Dalam tutorial ini dibahas dasar-dasar membuat bagan garis menggunakan Matplotlib. Bagan garis berguna untuk memvisualisasikan tren dari waktu ke waktu atau hubungan antar variabel numerik. Dengan menyesuaikan jenis garis, marker, warna, dan lain sebagainya, kita dapat membuat visualisasi lebih informatif dan efektif.
Ikuti juga tutorial-tutorial lainnya :
- Visualisasi Dengan Matplotlib - Membuat Bar Chart
- Visualisasi Dengan Matplotlib - Membuat Grafik Sederhana
- Visualisasi Dengan Matplotlib - Antarmuka Fungsional dan Object Oriented
- Visualisasi Dengan Pandas - Pie Chart
- Visualisasi Dengan Pandas - Line Chart