DATA VISUALIZATION — Menggunakan Matplotlib
Saya sedang belajar Data Visualisasi menggunakan Matplotlib. Apa itu matplotlib? Matplotlib untuk data visualisasi adalah sebuah library dari python yang low level digunakan untuk membangun sebuah objek yang visual. Maksud dari low level adalah memberikan kontrol hingga ke komponen kecil seperti jika membuat mobil maka diperlukan kontrol hingga ke bautnya.
Hal pertama yang perlu dilakukan untuk menggunakan library matplotlib adalah menginstall library tersebut didalam python. Tulis kode dibawah ini pada command prompt.
pip install matplotlib
atau di anaconda prompt.
conda install matplotlib
Jika sudah selesai install bisa kita cek dengan menggunakan kode dibawah ini.
pip list
Jika sudah ada library tersebut berarti library matplotlib sudah berhasil kita install.
Selanjutnya terdapat 2 komponen dasar dari matplotlib yang pertama yaitu figure dan axes. Figure adalah windows/page/halaman dalam visual. Seperti contoh jika kita menggambar/membuat menggunakan kertas maka kertas itu yang dinamakan sebagai figure. Didalam kertas itu kita bisa membuat sumbu x, y, grafik, text bahkan label. Untuk membuat figure pada pandas kita dapat menggunakan fungsi figure(). Axes merupakan suatu area yang ada didalam figure dimana data akan diplot. Didalam akses kita dapat memanipulasi data seperti memanipulasi garis sumbu x dan y. Dalam axes kita dapat menggunakan fungsi ax(). Kemudian yang kedua adalah plot. Plot digunakan untuk menggambar garis atau penanda pada sebuah gambar.
Berikut merupakan contoh menggunakan matplotlib
# mendefinisikan library matplotlib
import matplotlib.pyplot as plt# membuat visualisasi menggunakan objek figure
fig = plt.figure()# mendefinisikan objek axes
ax = fig.add_subplot()# mendefinisikan data dengan list
data_x = [1, 2, 3, 4, 5]
data_y = [10, 25, 50, 70, 90]
#mendefinisikan data ke objek
ax.plot(data_x, data_y)# menampilkan data
plt.show()
contoh lainnya
# mendefinisikan library matplotlib
import matplotlib.pyplot as plt# membuat visualisasi menggunakan objek figure
fig = plt.figure()# mendefinisikan objek axes
ax = fig.add_subplot()# mendefinisikan data
xlabel = ['susu', 'roti', 'coklat', 'gula', 'keju', 'cream', 'selai']
ylabel = [10, 20, 30, 18, 45, 5, 27]#mendefinisikan data ke objek
ax.plot(xlabel, ylabel)# menampilkan data
plt.show()
Setelah membuat visualisasinya kita akan belajar memberikan warna agar visualisasinya semakin menarik.
# definisikan library
import matplotlib.pyplot as plt# definisikan data
xlabel = ['susu', 'roti', 'coklat', 'gula', 'keju', 'cream', 'selai']
ylabel = [10, 20, 30, 18, 45, 5, 27]# definisikan figure dan axes
fig = plt.figure()
ax = fig.add_subplot()# memasukkan data
ax.plot(xlabel, ylabel)# menampilkan visualisasi
plt.show()
Ketik ulang kode dibawah ini
# definisikan figure dan axes
fig = plt.figure()
ax = fig.add_subplot()# memasukkan data dan beri warna
ax.plot(xlabel, ylabel, 'r')# menampilkan visualisasi
plt.show()
Warna tersebut bisa kalian cari disini
Setelah itu membuat marker visualisasi pada matplotlib
# definisikan library
import matplotlib.pyplot as plt# definisikan data
xlabel = ['susu', 'roti', 'coklat', 'gula', 'keju', 'cream', 'selai']
ylabel = [10, 20, 30, 18, 45, 5, 27]# definisikan figure dan axes
fig = plt.figure()
ax = fig.add_subplot()# masukan nilai data, warna, dan marker
ax.plot(xlabel, ylabel, 'r-.')# menampilkan visualisasi
plt.show()
Setelah itu membuat canvas
# definisikan library
import matplotlib.pyplot as plt# definisikan data
xlabel = ['susu', 'roti', 'coklat', 'gula', 'keju', 'cream', 'selai']
ylabel = [10, 20, 30, 18, 45, 5, 27]# definisikan figure dan axes
fig = plt.figure()
ax = fig.add_subplot()# membuat grid canvas
ax.grid()# masukan nilai data, warna, dan marker
ax.plot(xlabel, ylabel, color='blue', marker='o')# menampilkan visualisasi
plt.show()
Kemudian merubah linestyle
# definisikan library
import matplotlib.pyplot as plt# definisikan data
xlabel = ['susu', 'roti', 'coklat', 'gula', 'keju', 'cream', 'selai']
ylabel = [10, 20, 30, 18, 45, 5, 27]# definisikan figure dan axes
fig = plt.figure()
ax = fig.add_subplot()# membuat grid canvas
ax.grid()# masukan nilai data, warna, dan marker
ax.plot(xlabel, ylabel, color='blue', marker='o', linestyle=':')
# menampilkan visualisasi
plt.show()
Referensi linestyle klik disini
Merubah ukuran marker
# definisikan library
import matplotlib.pyplot as plt# definisikan data
xlabel = ['susu', 'roti', 'coklat', 'gula', 'keju', 'cream', 'selai']
ylabel = [10, 20, 30, 18, 45, 5, 27]# definisikan figure dan axes
fig = plt.figure()
ax = fig.add_subplot()# membuat grid canvas
ax.grid()# masukan nilai data, warna, dan marker
ax.plot(xlabel, ylabel, color='blue', marker='o', linestyle='-.', markersize=10)# menampilkan visualisasi
plt.show()
Merubah linewidth
# definisikan library
import matplotlib.pyplot as plt# definisikan data
xlabel = ['susu', 'roti', 'coklat', 'gula', 'keju', 'cream', 'selai']
ylabel = [10, 20, 30, 18, 45, 5, 27]# definisikan figure dan axes
fig = plt.figure()
ax = fig.add_subplot()# membuat grid canvas
ax.grid()# masukan nilai data, warna, dan marker
ax.plot(xlabel, ylabel, color='blue', marker='o', linestyle='-.', markersize=10, linewidth=5)# menampilkan visualisasi
plt.show()
Menambahkan judul pada line chart
# definifikan library
import matplotlib.pyplot as plt# definisikan data
xlabel = ['susu', 'roti', 'coklat', 'gula', 'keju', 'cream', 'selai']
ylabel = [10, 20, 30, 18, 45, 5, 27]# definisikan figure dan axes
fig = plt.figure()
ax = fig.add_subplot()# membuat grid canvas
ax.grid()# masukan nilai data, warna, dan marker
ax.plot(xlabel, ylabel, color='blue', marker='o', linestyle=':', markersize=10, linewidth=3)# membuat judul
plt.title('Line Chart Penjualan Makanan di AA Market')# menampilkan visualisasi
plt.show()
Memberi nama pada x dan y
# definifikan library
import matplotlib.pyplot as plt# definisikan data
xlabel = ['susu', 'roti', 'coklat', 'gula', 'keju', 'cream', 'selai']
ylabel = [10, 20, 30, 18, 45, 5, 27]# definisikan figure dan axes
fig = plt.figure()
ax = fig.add_subplot()# membuat grid canvas
ax.grid()# masukan nilai data, warna, dan marker
ax.plot(xlabel, ylabel, color='blue', marker='o', linestyle=':', markersize=10, linewidth=3)# membuat judul
plt.title('Line Chart Penjualan Makanan di AA Market')# penamaan x dan y
plt.xlabel('Nama Produk')
plt.ylabel('Jumlah Terjual')# menampilkan visualisasi
plt.show()
Menyimpan gambar
# definifikan library
import matplotlib.pyplot as plt# definisikan data
xlabel = ['susu', 'roti', 'coklat', 'gula', 'keju', 'cream', 'selai']
ylabel = [10, 20, 30, 18, 45, 5, 27]# definisikan figure dan axes
fig = plt.figure()
ax = fig.add_subplot()# membuat grid canvas
ax.grid()# masukan nilai data, warna, dan marker
ax.plot(xlabel, ylabel, color='blue', marker='o', linestyle=':', markersize=10, linewidth=3)# membuat judul
plt.title('Line Chart Penjualan Makanan di AA Market')# penamaan x dan y
plt.xlabel('Nama Produk')
plt.ylabel('Jumlah Terjual')# menyimpan image
plt.savefig('Penjualan.jpg', dpi=150)# menampilkan visualisasi
plt.show()
Membuat multiple plot
# definisikan library
import matplotlib.pyplot as plt# data penjualan bulan januari
data_x1 = ['susu', 'roti', 'coklat', 'gula', 'keju', 'cream', 'selai']
data_y1 = [10, 15, 20, 25, 30, 40, 50]# data penjualan bulan februari
data_x2 = ['susu', 'roti', 'coklat', 'gula', 'keju', 'cream', 'selai']
data_y2 = [20, 25, 30, 34, 33, 40, 55]# data penjualan bulan maret
data_x3 = ['susu', 'roti', 'coklat', 'gula', 'keju', 'cream', 'selai']
data_y3 = [24, 29, 35, 40, 33, 30, 15]# data penjualan bulan april
data_x4 = ['susu', 'roti', 'coklat', 'gula', 'keju', 'cream', 'selai']
data_y4 = [30, 40, 40, 55, 53, 60, 60]# figure dan axes
fig = plt.figure()
ax = fig.add_subplot()# masukan nilai axes
ax.plot(data_x1, data_y1, marker='o', label='Januari')
ax.plot(data_x2, data_y2, marker='o', label='Februari')
ax.plot(data_x3, data_y3, marker='o', label='Maret')
ax.plot(data_x4, data_y4, marker='o', label='April')# menampilkan keterangan
ax.legend()# tampilkan data
plt.show()
Membuat plot per bulan# membuat figure
fig, ax = plt.subplots(nrows=2, ncols=2)
# masukan datanya
ax[0][0].plot(data_x1, data_y1, color=’c’)
ax[0][1].plot(data_x2, data_y2, color=’y’)
ax[1][0].plot(data_x3, data_y3, color=’g’)
ax[1][1].plot(data_x4, data_y4, color=’r’)
# menampilkan plot
plt.show()
Membuat bar chart
import matplotlib.pyplot as plt
import pandas as pddata1 = pd.read_csv('siswa.csv', encoding='latin', sep=';')
data1
data1.info()
data = data1['ekstrakulikuler'].value_counts()
category = data.index
frequency = data.values
print(category)
print(frequency)
# definisikan figure dan axes
fig, ax = plt.subplots()# definisikan fungsi dari bar chart
ax.bar(category, frequency, color='r')
ax.set_xticklabels(category, rotation=45)# menampilkan plot
plt.show()
Membuat scatter plot
# definisikan figure dan axes
fig, ax = plt.subplots()# defnisikan fungsi scatter
ax.scatter(category, frequency, color='r')# tampilkan plot
plt.show()
Membuat pie chart
labels = 'Nila', 'Sapi', 'Ayam', 'Lele'
sizes = [15, 30, 45, 10]
explode = (0, 0, 0.1, 0)# definisikan figure dan axis
fig1, ax1 = plt.subplots()# definisikan fungsi pie chart
ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True,
startangle=90)
ax1.axis('equal')#tampilkan plot
plt.show()
Membuat historgram
import numpy as np
import matplotlib.pyplot as plt
# definisikan data
nilai_siswa = [20, 15, 17, 60, 80, 50, 90, 88, 99, 70, 100, 30, 40, 60, 55]num_bins = 7plt.hist(nilai_siswa, num_bins, facecolor='b')
plt.grid()
plt.xlabel('nilai')
plt.ylabel('kelompok interval')plt.show()
Membuat sigma
import numpy as np
import matplotlib.pyplot as plt
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
n, bins, pathces = plt.hist(x, 50, density=True, facecolor='b', alpha=0.7)
plt.xlabel('Smart')
plt.ylabel('Probability')
plt.title('Histogram of IQ')
plt.text(60, .025, r'$mu=100,\ \sigma=15$')
plt.xlim(40,160)
plt.ylim(0, 0.03)
plt.grid()
plt.show()
Membuat boxplot
import numpy as np
import matplotlib.pyplot as plt# definisikan data
nilai_ipa = (50, 60, 10, 95, 90)
nilai_ips = (40, 100, 30, 80, 70)
nilai_mtk = (50, 55, 60, 70, 45)fig, ax = plt.subplots()ax.boxplot((nilai_ipa, nilai_ips, nilai_mtk), vert=False, showmeans=True, meanline=True,
labels=('Nilai IPA', 'Nilai IPS', 'Nilai Matematika'), patch_artist=True,
medianprops={'linewidth' : 2, 'color' :'red'},
meanprops={'linewidth' : 2, 'color' :'yellow'})plt.grid()
plt.show()
Begitulah cara menggunakan library matplotlib.