Visualisasi dengan Matplotlib – Pie Chart

Visualisasi dengan Matplotlib : Pie Chart

Pie chart merupakan salah satu jenis visualisasi yang paling populer. Pada umumnya, grafis ini digunakan untuk menampilkan proporsi atau persentase data dalam bentuk irisan-irisan pada lingkaran. Dalam tutorial ini kita akan membahas cara membuat pie chart menggunakan Matplotlib, cara menambahkan label pada setiap irisan pie chart tersebut, dan beberapa kustomisasi lainnya.

Langkah pertama, kita import package yang diperlukan, di antaranya yaitu matplotlib.pyplot.

import matplotlib.pyplot as plt

Kita akan gunakan data berikut ini untuk visualisasi

produk = ['Produk 1', 'Produk 2', 'Produk 3', 'Produk 4' ]
penjualan = [332, 594, 258, 424]

Menampilkan Pie Chart

Untuk menampilkan pie chart, kita gunakan fungsi pyplot.pie(). Untuk menampilkan nama produk, gunakan parameter labels.

fig, ax = plt.subplots()
ax.pie(penjualan, labels=produk)

plt.show()
Matplotlib - Pie Chart Sederhana
Gambar – Pie Chart Sederhana

Menampilkan Persentase

Untuk menampilkan persentasi di dalam bagan, kita gunakan parameter autopct. Parameter ini secara default diset None, yang efeknya adalah nilai persentase tidak ditampilkan. Paramater autopct dapat menerima value berupa string atau fungsi.

Jika parameter berupa string format, string tersebut akan digunakan untuk memformat nilai persentase. Misalnya untuk menampilkan persentase 1 digit di belakang koma, kita gunakan string '%1.1f%%'.

fig, ax = plt.subplots()
ax.pie(penjualan, labels=produk, autopct='%1.1f%%')
plt.show()
Matplotlib - Pie Chart dengan Persentase
Gambar – Pie Chart dengan Persentase

Menggunakan Fungsi Untuk Menampilkan Persentase

Ketika parameter autopct diisi dengan fungsi, maka fungsi tersebut akan dieksekusi.

Misalnya kita ingin menampilkan nilai persentase dan nilai satuan masing-masing bagian. Kita bisa mendapatkan nilai satuan dengan cara mengalikan nilai persentase dengan nilai total penjualan, lalu menampilkan keduanya dengan menggunakan format yang diinginkan.

Untuk itu kita dapat menggunakan fungsi lambda. Yaitu : lambda p:f'{p:.2f}% ({p*sum(penjualan)/100 :.0f})'

fig, ax = plt.subplots()
ax.pie(penjualan, labels=produk, autopct=lambda p:f'{p:.2f}% ({p*sum(penjualan)/100 :.0f})')
plt.show()
Matplotlib - Pie Chart Menggunakan Fungsi Persentase
Gambar – Pie Chart Menggunakan Fungsi Persentase

Mengubah warna chart

Kita dapat mengubah pilihan warna pie chart dengan menggunakan parameter colors. Parameter ini menerima list yang berisi daftar warna. Jika panjang list kurang dari jumlah data yang ditampilkan, warna akan ditampilkan berulang (cycle).

List warna ini dapat berupa list of string nama, misalnya ['blue', 'red', 'cyan'], atau rgb tuple, misalnya [(0,0,1),(1,0,0),(0,1,1)], atau rgb hex string, misalnya ['#0000ff','#ff0000','#00ffff']. Untuk definisi color yang bisa digunakan, dapat dilihat di sini.

fig, ax = plt.subplots()

ax.pie(penjualan, labels=produk, 
       autopct=lambda p:f'{p:.2f}% ({p*sum(penjualan)/100 :.0f})',
       colors= ['blue','red', 'cyan','green'])

plt.show()
Matplotlib - Penggunaan Parameter Color
Gambar – Penggunaan Parameter Color

Mengatur Letak Label dan Persentase

Kita dapat mengatur letak label dengan menggunakan parameter labeldistance. Nilainya menunjukkan jarak label dari pusat lingkaran. Secara default, labeldistance diberi nilai 1.1.

Jika kita ingin memindahkan label ke dalam lingkaran, maka kita bisa mengubah nilainya menjadi < 1, dalam hal ini kita gunakan nilai 0.5.

Letak persentase diatur dengan menggunakan parameter pctdistance. Secara default nilai pctdistance diset = 0.6.

Kita dapat menukar letak label dan persentase dengan mengubah setting kedua parameter tersebut.

fig, ax = plt.subplots()

ax.pie(penjualan, labels=produk, 
       autopct=lambda p:f'{p:.2f}% ({p*sum(penjualan)/100 :.0f})',
       labeldistance=.5, pctdistance=1.1)

plt.show()
Matplotlib - Pengaturan Letak Label dan Persentase
Gambar – Pengaturan Letak Label dan Persentase

Mengatur Letak dan Arah Putaran Pie Chart

Secara default urutan data pada piechart ditampilkan secara berlawanan arah dengan jarum jam (counterclockwise). Untuk mengubahnya menjadi searah jam, maka parameter counterclock kita set menjadi False.

Sedangkan dimulainya urutan tampilan data secara default adalah dari sumbu x positif. Untuk mengubahnya, kita dapat gunakan parameter startangle.

Jika kita ingin pie chart menampilkan ‘Produk 1’ di sebelah kiri (sumbu x negatif), dan memutar searah jarum jam, maka kita gunakan startangle=180 dan counterclock = False.

fig, ax = plt.subplots()

ax.pie(penjualan, labels=produk, 
       autopct=lambda p:f'{p:.2f}% ({p*sum(penjualan)/100 :.0f})',
       startangle=180, counterclock=False)

plt.show()
Matplotlib - Pengaturan Arah Putaran Pie Chart
Gambar – Pengaturan Arah Putaran Pie Chart

Membuat Pie Chart Lebih Menarik : Explode dan Shadow

Matplotlib juga menyediakan beberapa parameter lain yang bisa digunakan untuk menambahkan efek visualisasi yang lebih menarik dan informatif. Dua parameter yang sering digunakan adalah explode dan shadow.

Parameter explode digunakan untuk memisahkan atau menjauhkan satu atau lebih irisan pie chart dari lingkaran utama. Fitur ini sering digunakan untuk memberikan penekanan pada irisan tertentu dalam pie chart.

Parameter explode menerima sebuah list atau tuple yang panjangnya sama dengan jumlah irisan pada pie chart. Setiap elemen dalam list atau tuple ini menunjukkan seberapa jauh irisan tersebut dipisahkan dari pusat pie chart. Nilainya berupa angka desimal antara 0 dan 1. Nilai 0 berarti irisan tidak dipisahkan, sedangkan nilai mendekati 1 berarti irisan dipisahkan lebih jauh dari pusat.

fig, ax = plt.subplots()

exploded = (0.1, 0, 0, 0)

ax.pie(penjualan, labels=produk, 
       autopct='%1.1f%%',
       startangle=180, counterclock=False,
       colors='rgby',
       explode=exploded
       )

plt.show()
Matplotlib - Efek Explode pada Pie Chart
Gambar – Efek Explode pada Pie Chart

Parameter shadow digunakan untuk menambahkan bayangan pada pie chart. Bayangan ini memberikan efek 3D yang dapat membuat pie chart terlihat lebih menarik.

Parameter shadow menerima nilai boolean. Secara default, nilai shadow = False (tanpa bayangan).

fig, ax = plt.subplots()

exploded = (0.1, 0, 0, 0)

ax.pie(penjualan, labels=produk, 
       autopct='%1.1f%%',
       startangle=180, counterclock=False,
       colors='rgby',
       explode=exploded,
       shadow=True
       )

plt.show()
Matplotlib - Efek Explode dan Shadow pada Pie Chart
Gambar – Efek Explode dan Shadow pada Pie Chart

Wrapping Up

Dalam tutorial ini dibahas dasar-dasar membuat pie chart menggunakan Matplotlib.

Ikuti juga tutorial-tutorial lainnya :

Sebuah program edukasi yang disusun oleh Solusi247 untuk membangun talenta data Indonesia

Contact Us

Segitiga Emas Business Park
Jl. Prof. Dr. Satrio KAV 6, Setia Budi
Jakarta Selatan
P: +62 21 579 511 32
M: info@datalearns247.com