Dalam visualisasi data, scatterplot adalah salah satu alat yang sangat berguna untuk menampilkan hubungan antara dua variabel numerik. Dalam tutorial ini, kita akan belajar bagaimana membuat scatterplot dengan kategori menggunakan Matplotlib.
Cara Pertama: Membuat List Warna
Pertama-tama, kita perlu membuat list warna yang sesuai untuk masing-masing record, sesuai dengan kategorinya. Kita dapat menggunakan loop for untuk melakukan hal ini.
colors = []
for i in sales.jenis:
if i == 'A': colors.append('red')
if i == 'B': colors.append('blue')
if i == 'C': colors.append('green')
Selanjutnya, kita gunakan list tersebut sebagai parameter color
pada fungsi scatter()
. Dengan cara ini, kita hanya perlu memanggil fungsi scatter()
satu kali saja.
fig, ax = plt.subplots()
ax.scatter(sales.penjualan, sales.harga, color=colors, s=sales.berat)
ax.set(xlabel='Penjualan', ylabel='Harga', title='Scatterplot dengan Kategori')
plt.show()
Cara Kedua: Membuat Scatterplot untuk Tiap Nilai Kolom Jenis
Pada cara kedua, kita akan memanggil fungsi scatter()
sebanyak 3 kali untuk tiap nilai kolom jenis. Sebelumnya, kita kelompokkan terlebih dahulu data sales berdasar jenis.
salesA = sales[sales.jenis == 'A']
salesB = sales[sales.jenis == 'B']
salesC = sales[sales.jenis == 'C']
Kemudian, masing-masing kelompok data tersebut kita plot di axes yang sama.
fig, ax = plt.subplots()
ax.scatter(salesA.penjualan, salesA.harga, color='red', s=salesA.berat)
ax.scatter(salesB.penjualan, salesB.harga, color='blue', s=salesB.berat)
ax.scatter(salesC.penjualan, salesC.harga, color='green', s=salesC.berat)
ax.set(xlabel='Penjualan', ylabel='Harga', title='Scatterplot dengan Kategori')
plt.show()
Menambahkan Legend pada Scatterplot
Legend dalam scatterplot yang berisi variabel kategori sangat penting untuk membantu dalam interpretasi visualisasi. Untuk menambahkan legend, kita perlu setting parameter label
pada fungsi scatter()
dan kemudian memanggil fungsi legend()
.
fig, ax = plt.subplots()
ax.scatter(salesA.penjualan, salesA.harga, label='A',
color='red', s=salesA.berat)
ax.scatter(salesB.penjualan, salesB.harga, label='B',
color='blue', s=salesB.berat)
ax.scatter(salesC.penjualan, salesC.harga, label='C',
color='green', s=salesC.berat)
ax.set(xlabel='Penjualan', ylabel='Harga', title='Scatterplot dengan Legend')
ax.legend(title='Jenis')
plt.show()
Mengantisipasi Overlap
Tumpang tindih (overlapping) pada scatterplot dapat mengurangi kejelasan dan interpretabilitas. Salah satu cara efektif untuk mengatasi masalah ini adalah dengan menggunakan parameter alpha
dalam Matplotlib.
Parameter alpha
mengatur transparansi dari elemen plot. Nilai alpha berkisar dari 0 (transparan total) hingga 1 (tidak transparan sama sekali).
# data random
np.random.seed(1)
x = np.random.rand(400)
y = np.random.rand(400)
fig, ax = plt.subplots()
ax.scatter(x, y, alpha=0.5)
ax.set(xlabel='Sumbu X', ylabel='Sumbu Y', title='Scatterplot dengan Overlap')
plt.show()
Pengumpulan
Scatterplot adalah alat yang sangat berguna untuk visualisasi hubungan antara dua variabel numerik. Dengan menggunakan Matplotlib, kita dapat membuat scatterplot yang sederhana maupun yang kompleks dengan berbagai kustomisasi seperti warna, ukuran, dan label.
Simak juga tutorial-tutorial lainnya :
- Visualisasi Dengan Matplotlib : Pie Chart
- Visualisasi Dengan Matplotlib – Membuat Bar Chart
- Visualisasi Dengan Matplotlib – Membuat Scatterplot untuk Tiap Nilai Kolom Jenis
- Menambahkan Legend pada Scatterplot