www.softscients.com | Grafik piramida pada package matplotlib belum tersedia khusus, namun demikian kita bisa melakukan modifikasi dengan membaginya melalui subplot yang terdiri dari 2 kolom. Lebih dari cukup sih daripada ribet-ribet, berikut tampilan dari grafik pyramid matplotlib sebagai bahan tambahan karena di buku kami belum ada dibahas
Dataset
Dataset yang kita gunakan diambil dari https://softscients.com/2020/07/04/menjadi-cerdas-melalui-grafik-piramida-dan-teknik-query-data/ yaitu penduduk.csv
males,females,ages 4882,4573,0-4 5664,5286,5-9 5373,5124,10-14 5545,5255,15-19 4775,4558,20-24 5030,4090,25-29 5043,4634,30-34 6061,5685,35-39 5357,4711,40-44 4519,3925,45-49 3357,3072,50-54 2699,2694,55-59 2123,2176,60-64 1528,1616,65-69 873,929,70-74 938,1271,75+
Function untuk membuat Grafik Pyramid di Matplotlib
Berikut kode yang digunakan untuk modifikasi grafiknya, sedikit koq kodenya
def pyramid_plot(ylabels, data_left, xlabel_left, data_right, xlabel_right, fig=None, **kwargs): if(fig is None): fig = plt.figure() y_pos = np.arange(len(ylabels)) empty_ticks = tuple('' for n in ylabels) fig.add_subplot(121) #bagian kiri plt.barh(y_pos, data_left, **kwargs) plt.yticks(y_pos, empty_ticks) oldlims = plt.gca().get_xlim() plt.axis(xmin=oldlims[1], xmax=oldlims[0]) plt.xlabel(xlabel_left) fig.add_subplot(122) #bagian kanan plt.barh(y_pos, data_right, **kwargs) plt.yticks(y_pos, ylabels) plt.xlabel(xlabel_right) return fig
Ternyata membuat grafik pyramid menggunakan python-matplotlib sangatlah mudah, berikut kode lengkap ketika akan menggunakan function diatas
import pandas as pd import numpy as np from matplotlib import pyplot as plt def pyramid_plot(ylabels, data_left, xlabel_left, data_right, xlabel_right, fig=None, **kwargs): if(fig is None): fig = plt.figure() y_pos = np.arange(len(ylabels)) empty_ticks = tuple('' for n in ylabels) fig.add_subplot(121) #bagian kiri plt.barh(y_pos, data_left, **kwargs) plt.yticks(y_pos, empty_ticks) oldlims = plt.gca().get_xlim() plt.axis(xmin=oldlims[1], xmax=oldlims[0]) plt.xlabel(xlabel_left) fig.add_subplot(122) #bagian kanan plt.barh(y_pos, data_right, **kwargs) plt.yticks(y_pos, ylabels) plt.xlabel(xlabel_right) return fig data = pd.read_csv('data penduduk.txt') umur = data['ages'] laki_laki = data['males'] perempuan = data['females'] # Plot the data pyrfig = plt.figure(1) pyrfig = pyramid_plot(umur, laki_laki, 'laki-laki', perempuan, 'perempuan', pyrfig, align='center', alpha=0.4) pyrfig.suptitle('Sebaran laki-laki dan perempuan') pyrfig.set_figwidth(1.5*pyrfig.get_figheight()) plt.show(pyrfig)
Bagaimana menurut kalian? membuat dan menampilkan grafik piramida di python-matplotlib, sangat mudah bukan?