Yuk membuat dan menampilkan grafik piramida di python-matplotlib

By | July 12, 2020
Print Friendly, PDF & Email

www.softscients.com | Grafik pyramid 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?

 

Leave a Reply

Your email address will not be published. Required fields are marked *