Friday, April 27, 2012

Plotting grafik dengan MATPLOTLIB dan NUMPY


Plotting Data menggunakan python membutuhkan MATPLOTIB dan NUMPY, digunakan untuk menggantikan fungsi MATLAB yang berbayar.

os : debian squeeze amd64
> sudo apt-get install python
> sudo apt-get install python-matplotlib
> sudo apt-get install python-numpy
 
Data CSV :
ayam-petelur.csv
Kegiatan Utama,tahun2000M,2001,2002,2003,2004,2005,2006,2007,2008,2009
Pembibitan,20,29,12,9,11,30,33,31,22,23
Budidaya,1397,1601,1275,1377,1768,2062,2259,2285,116,122
Jumlah,1417,1630,1287,1386,1779,2092,2292,2316,138,145

sapi-perah.csv
Kegiatan Utama,tahun2000M,2001,2002,2003,2004,2005,2006,2007,2008,2009
Pembibitan,14,15,15,10,12,12,6,6,4,4
Budidaya,391,407,402,375,341,348,484,511,95,90
Jumlah,405,422,417,385,353,360,490,517,99,94

data peternakan didapat dari :
ayam : http://www.bps.go.id/tab_sub/view.php?tabel=1&daftar=1&id_subyek=24&notab=8
sapi : http://www.bps.go.id/tab_sub/view.php?tabel=1&daftar=1&id_subyek=24&notab=1

Coding : tugas.py
from matplotlib import mlab
import numpy as np
import matplotlib.pyplot as plt

sapi_perah = mlab.csv2rec('sapi-perah.csv')
ayam_petelur = mlab.csv2rec('ayam-petelur.csv')

N = 3
left = np.arange(N)
width = 0.25
plt.subplot(111)

bar1 = plt.bar(left+width, sapi_perah.tahun2000m, width, color='red')
bar2 = plt.bar(left+2*width, ayam_petelur.tahun2000m, width, color= 'blue')

plt.ylabel('Jumlah Perusahaan tiap tahun')
plt.xlabel('Kegiatan Utama ')
plt.title('Jumlah Perusahaan Peternakan Menurut Kegiatan Utama Tahun 2009 ')
plt.xticks(left+4*width/2., ('Pembibitan', 'Budidaya', 'Jumlah'))
plt.legend((bar1[0], bar2[0]), ('Sapi Perah', 'Ayam Petelur'), loc=2)

def autolabel(rects):
        for rect in rects:
                height = rect.get_height()
                plt.text(rect.get_x()+rect.get_width()/2.,1.01*height, '%d'%int(height),ha='center',va='bottom')

autolabel(bar1)
autolabel(bar2)
plt.show()

hasil

sempat error karena masalah attribute =.="
 thank to Iskandar dan temen-temen b201crew yang uda membantu ^.^

8 comments:

  1. next job ... penyajian data berbasis web :D

    ReplyDelete
  2. Tugasnya lagi mas??
    Hehehe... semangat yah !!!
    Aku tetap gak ngerti ^^

    ReplyDelete
    Replies
    1. ^.^ makasih fitrah..
      Semangat teruss... !!
      ~Ganbatte..

      Delete
  3. wah dari gresik juga to??
    gresik mana??
    salam kenal ya,,

    ReplyDelete
    Replies
    1. yo i bro, dari gresik, tepatnya bungah, salam kenal jeh @.@

      Delete

have a question, just spill it :D