Diagram garis atau line chart merupakan salah satu bentuk visualisasi data. Modul yang akan digunakan adalah Matplotlib. Diagram garis digunakan untuk menunjukkan perubahan data selama periode tertentu. Misalnya, diagram garis dapat berguna untuk membuat diagram penjualan saham, diagram harga sebuah produk dari waktu ke waktu.
Contoh Kasus
Diketahui daftar harga Bitcoin yang dicatat setiap akhir minggu (Minggu) di 2018 dan 2019. Buat visualisasi yang memungkinkan Anda menjawab pertanyaan: Tahun apa, 2018 atau 2019, yang cenderung memberikan pengembalian yang lebih baik bagi pemegang Bitcoin?
Import Library Matplolib
Pada bagian ini akan diperlihat kode program untuk import libary Pandas dan Matplotlib.
import matplotlib.pyplot as plt
import pandas as pd
import numpy as npt
Data Harga Bitcoin
Berikut ini merupakan data harga bitcoin dalam setiap minggunya. Data terdiri dari 104 minggu dalam kurun waktu selama 2 tahun yaitu tahun 2018 dan 2019.
prices = [
14292.2, 12858.9, 11467.5, 9241.1, 8559.6, 11073.5, 9704.3 , 11402.3,
8762.0, 7874.9, 8547.4, 6938.2, 6905.7, 8004.4, 8923.1, 9352.4, 9853.5,
8459.5, 8245.1, 7361.3, 7646.6, 7515.8, 6505.8, 6167.3, 6398.9, 6765.5,
6254.8, 7408.7, 8234.1, 7014.3, 6231.6, 6379.1, 6734.8, 7189.6, 6184.3,
6519.0, 6729.6, 6603.9, 6596.3, 6321.7, 6572.2, 6494.2, 6386.2, 6427.1,
5621.8, 3920.4, 4196.2, 3430.4, 3228.7, 3964.4, 3706.8, 3785.4, 3597.2,
3677.8, 3570.9, 3502.5, 3661.4, 3616.8, 4120.4, 3823.1, 3944.3, 4006.4,
4002.5, 4111.8, 5046.2, 5051.8, 5290.2, 5265.9, 5830.9, 7190.3, 7262.6,
8027.4, 8545.7, 7901.4, 8812.5, 10721.7, 11906.5, 11268.0, 11364.9 ,
10826.7, 9492.1, 10815.7, 11314.5, 10218.1, 10131.0, 9594.4, 10461.1,
10337.3, 9993.0, 8208.5, 8127.3, 8304.4, 7957.3, 9230.6, 9300.6, 8804.5,
8497.3, 7324.1, 7546.6, 7510.9, 7080.8, 7156.2, 7321.5, 7376.8
]
Membuat data Weeks
Sebelum membuat dataframe yang akan menjadi sumber data utama diperlukan tambahan 1 buah variabel yaitu Week. Variabel ini akan menjadi sumbu X dan harga bitcoin akan menjadi sumbu Y. Setelah variabel Week terbentuk maka proses selanjutnya adalah membuat dataframe dari kedua variabel tersebut. Berikut ini kode programnya.
weeks = list(range(1, len(prices)+1))
df = pd.DataFrame({'Week': weeks, 'Price': prices })
df.head()
Membagi dataframe menjadi 2 bagian
Pada bagian ini data akan dibagi menjadi 2 bagian yaitu pekan ke 1-52 menjadi dataframe tahun 2018 dan pekan 53-104 menjadi dataframe tahun 2019. Berikut ini kode programnya.
df2018 = df[0:52]
df2018.head()
df2019 = df[52:104]
df2019.head()
Membuat visualisasi data dengan Matplotlib
Pada bagian ini akan dijelaskan mengenai cara membuat diagram garis.
Membuat tempat visualisasi data
fig = plt.figure()
ax = plt.axes()
Menambahkan line chart
fig = plt.figure(figsize=(6,4))
ax = plt.axes()
ax.plot(df2018['Week'],df2018['Price'])
fig = plt.figure(figsize=(6,4))
ax = plt.axes()
ax.plot(df2019['Week'],df2019['Price'])
Menggabungkan 2 Line Chart
fig = plt.figure(figsize=(6,4))
ax = plt.axes()
ax.plot(df2018['Week'],df2018['Price'])
ax.plot(df2019['Week'],df2019['Price'])
Memberikan title dan label pada line chart
Judul dapat ditambahkan pada diagram yang dibuat. Perintah set_title() digunakan untuk menampilkan judul pada diagram. Untuk label sumbu x digunakan perintah set_xlabel() sedangkan sumbu y digunakan perintah set_ylabel().
fig = plt.figure(figsize=(6,4))
ax = plt.axes()
ax.plot(df2018['Week'],df2018['Price'])
ax.plot(df2019['Week'],df2019['Price'])
ax.set_title('Bitcoin Price 2018- 2019')
ax.set_ylabel('Price')
ax.set_xlabel('Week')
Merubah warna dan tipe garis
Pada bagian ini dicontohkan untuk merubah warna garis dan tipe garis yang digunakan. Label 2018 diberi kode “co” yang artinya “c” itu cyan dan “o” itu jenis garis ang dalam bentuk bulat. Sedangkan label 2019 memilki kode “m^” yang artinya m itu magentha dan “^” itu jenis garis yang dalam bentuk segitiga
fig = plt.figure(figsize=(6,4))
ax = plt.axes()
ax.plot(df2018['Week'],df2018['Price'],'co')
ax.plot(df2019['Week'],df2019['Price'],'m^')
ax.set_title('Bitcoin Price 2018- 2019')
ax.set_ylabel('Price')
ax.set_xlabel('Week')
Mengatur ukuran sumbu X dan Y pada line chart
Untuk dapat melihat diagram lebih jelas dapat dilakukan dengan mengatur range nilai data. Pada contoh telihat bahwa x bernilai dari 0-104 , sedangkan nilai y memiliki rentan darii 1000-20000.
fig = plt.figure(figsize=(6,4))
ax = plt.axes()
ax.plot(df2018['Week'],df2018['Price'],'co')
ax.plot(df2019['Week'],df2019['Price'],'m^')
ax.set_xlim(0,104)
ax.set_ylim(1000,20000)
ax.set_title('Bitcoin Price 2018- 2019')
ax.set_ylabel('Price')
ax.set_xlabel('Week')
Menambahkan legend label
Legend pada diagram merupakan keterangan yang menunjukkan warna atau pola yang digunakan pada setiap label. Pada contoh terdapat 2 label yaitu 2018 dan 2019.
fig = plt.figure(figsize=(6,4))
ax = plt.axes()
ax.plot(df2018['Week'],df2018['Price'],'c+', label="2018")
ax.plot(df2019['Week'],df2019['Price'],'m2', label="2019")
ax.set_xlim(0,104)
ax.set_ylim(0,20000)
ax.set_title('Bitcoin Price 2018- 2019')
ax.set_ylabel('Price')
ax.set_xlabel('Week')
ax.legend(loc="upper center", ncol=2, shadow=True, borderpad=1);
Kesimpulan Line Chart – Visualisasi Data
Jawaban dari soal yang telah diberikan adalah tahun 2019. Pada tahun 2019 terlihat harga dari bitcoin meningkat pesat. Namun, pada pertengahan tahun terlihat menurun walaupun turunnya landai saja. Harga bitcoin di tahun 2018 cenderung terus menurun dari awal tahun sampai dengan akhir tahun.
Proses melakukan visualisasi data dengan menggunakan Matplotlib dapat dikatakan sangat mudah. Namun, tentu saja cara yang sudah dijelaskan hanya merupakan salah satu dari sekian banyak cara yang disediakan oleh Matplotlib itu sendiri. Pada artikel ini hanya membahas satu bentuk visualisasi data yaitu grafik garis. Kunjungi tautan ini untuk mengetahui tema data science lainnya.