2. DAFTAR ISI
Prakata 1
Kata Pengantar 2
Tentang Penulis 3
BAGIAN I
PythonTEX 4
1 Instalasi & Hello World 5
2 Lingkungan PythonTEX 11
3 Penggunaan PythonTEX 14
4 Matplotlib 17
5 NumPy 29
6 SciPy 32
7 SymPy 34
8 Pandas 38
I
3. DAFTAR ISI
Prakata 1
Kata Pengantar 2
Tentang Penulis 3
BAGIAN I
PythonTEX 4
1 Instalasi & Hello World 5
1.1 Python dan TEX 5
1.2 Lingkungan Python 5
1.3 Distrbusi Python 6
1.4 Instalasi Python 6
1.5 Memulai perintah sederhana di Python 6
1.6 Editor Python 7
1.7 Persyaratan Instalasi PythonTEX 8
1.8 Instalasi PythonTEX 8
Membuat dokumen sederhana dengan
PythonTEX 9
2 Lingkungan PythonTEX 11
2.1 Perintah Dasar 11
2.2 Operasi dasar dalam Matematika 11
Penjumlahan dalam PythonTEX 12
Pengurangan dalam PythonTEX 12
Perkalian dalam PythonTEX 12
Pembagian dalam PythonTEX 12
2.3 Tampilan Perintah di PythonTEX 13
2.4 Pesan kesalahan dalam PythonTEX 13
3 Penggunaan PythonTEX 14
3.1 Matplotlib 14
Pyplot 14
3.2 NumPy 15
3.3 SciPy 15
3.4 SymPy 16
4 Matplotlib 17
4.1 Instalasi Matplotlib 17
Instalasi Module lengkap 17
Linux : Menggunakan package manager 17
Mac OS X : Menggunakan pip 18
Windows 18
Instalasi dari Sumber : Matplotlib 18
4.2 Persyaratan dalam Menjalankan Matplotlib 18
4.3 Tutorial PyPlot 19
4.4 Pengaturan Garis 21
4.5 Pengaturan dan kontrol banyak gambar dan ko-ordinat
21
4.6 Bekerja dengan Teks 22
4.7 Menggunakan notasi matematika didalam teks
23
4.8 Penambahan keterangan 23
4.9 Navigasi Interaktif 24
4.10 Logo Matplotlib 25
4.11 Bekerja dengan Teks lebih lanjut 27
Perintah dasar dalam pengaturan teks 27
5 NumPy 29
5.1 Susunan Dimensi -푁 29
6 SciPy 32
6.1 Sub -Scipy 32
7 SymPy 34
7.1 Contoh 35
7.2 Perhitungan Pangkat 35
7.3 Operasi Dasar di SymPy 36
Pergantian(Substitution) 37
8 Pandas 38
8.1 Struktur Data 38
8.2 Melihat Data 39
8.3 Menyeleksi Data 40
II
4. BAGIAN
PRAKATA
A khir penghujung tahun 2014 ini, saya meng-eluarkan
versi terbaru dari buku seri LATEX
yang telah saya buat yaitu "Membuat doku-men
PythonTEX. Buku ini merupakan versi pertama
yang saya buat dan berharap dapat menjadi versi
yang lebih baik seperti buku yang telah saya buat
yaitu "Membuat dokumen LATEX. Didalam buku terse-but
berisi uraian singkat mengenai penjelasan pem-buatan
dokumen LATEX, instalasi program LATEX, pe-nerapannya
dalam bidang seperti akademisi melipu-ti
kimia, fisika, hingga mendekati ke bahasa pemro-graman
Python yaitu paket Minted. Saya cukup pu-as
dengan buku yang saya buat dari yang tidak tahu
sampai menambah pengetahuan ke bidang -bidang
yang lainnya.
oleh Guido ke bidang akademik meliputi Matplotlib,
NumPy, Scipy, Sympy hingga Nympy. Mereka se-mua
berguna dalam melakukan akses cepat kode Python
melalui LATEX. Paket ini menurut saya sangat bergu-na
BAB DALAM BAGIAN INI:
Buku yang dihadapan Anda ini akan memba-has
sedikit demi sedikit perkembangan dan pene-rapan
bahasa pemrogram Python yang diciptakan
sederet module yang digunakan dalam meng-hitung,
membuat grafik, hingga melakukan anali-sis
perhitungan. Tentunya, paket yang cukup mem-buat
saya tersenyum adalah PythonTEX yang dapat
dalam peningkatan nilai guna LATEX itu sendiri.
Kata Pengantar Tentang Penulis
5. KATA PENGANTAR
Buku ini berjudul ”Membuat Dokumen PythonTEX” merupakan buku yang menjelaskan
tentang implementasi LATEX ke bahasa pemrograman Python.
Tak ada gading yang tak retak, begitu juga dengan buku yang ada di hadapan Anda.
Saya menerima saran dan kritik Anda dalam pengembangan buku ini lebih lanjut dan dapat
dipergunakan secara luas bagi Anda yang membutuhkannya.
Penulis juga tidak lupa mengucapkan terima kasih kepada pihak -pihak yang telah mem-bantu
terciptanya buku ini. Terima kasih telah berkesempatan membaca sekelumit isi di-dalam
buku ini. Semoga bermanfaat bagi Anda.
Yogyakarta, 9 Desember 2014
Hirwanto
2
6. TENTANG PENULIS
Perkenalkan nama saya Hir-wanto.
Ini tahun ke -4 saya dalam mempelajari
LATEX, namun saya tidak akan membahas secara lang-sung
dan saya akan membahas tentang penerapan LATEX di
Python dalam integrasi penggunaan module di LATEX mela-lui
PythonTEX. Saya lahir di Palembang, 6 Oktober 1989,
tepatnya 26 tahun silam saya dilahirkan dan sekarang di
akhir penghujung tahun 2014. Saya sekarang tinggal di
Kotabumi, Lampung Utara bukan termasuk perkotaan be-sar
namun tidak terlalu desa karena listrik sudah ada di tem-pat
kami. Akses transportasi di tempat saya cukup mudah
melalui jalan darat dengan bis dan kereta api. Kegemar-an
saya adalah membuat dokumen LATEX yang hampir mi-rip
dengan dokumen Adobe InDesign dan itu harapan saya.
Tidak statis namun dokumen yang dinamis. Terima Kasih ,
itu saja perkenalan dari saya jika tertarik dengan pembela-jaran
LATEX bisa menghubungi via telepon (+628 52 9232
5117) atau dapat dilihat diblog saya dengan nama http://l-hirwanto.blogspot.com.
3
7. BAGIAN I
PYTHONTEX
BAB DALAM BAGIAN INI:
1 Instalasi & Hello World
2 Lingkungan PythonTEX
3 Penggunaan PythonTEX
4 Matplotlib
5 NumPy
6 SciPy
7 SymPy
8 Pandas
P ythonTEX merupakan salah satu implemen-tasi
LATEX dengan program lain,yaitu Python
dan diharapkan akan meningkatkan kiner-janya
dalam menghasilkan dokumen yang dina-mis,
tidak kaku, dan kuno serta hanya sekedar pro-gram
pengaturan teks. Paket ini dibuat Geoffrey
M.Poore. Paket yang dikembangkan ini dapat di-gunakan
di setiap mesin TEX baik itu PDFLATEX,
LuaLATEX, atau pun XeLATEX. Hal ini dikarenakan
PythonTEX memiliki kinerja secara parallel dengan
dokumen LATEX sehingga memungkinkan berjalan
baik. Suatu perintah di dokumen LATEX yang memuat
kode Python diproses oleh melalui tiga proses seba-gai
berikut :
1.PDFLATEX, proses mengubah dokumen.tex men-jadi
.pdf.
2.PythonTEX, proses ini mengubah dokumen .tex
yang memuat kode Python
3.PDFLATEX, proses ini mengubah dokumen.tex
dan hasil kode Python kedalam bentuk .pdf
Prinsip ketiga proses ini tidak akan bermasalah jika
kamu tidak menginginkan menampilkan hasil dari
bahasa pemrograman Python. Hal ini didasarkan
pada pemrosesan PythonTEX tidak akan merubah
hasil dokumen yang kamu buat. Dengan adanya
PythonTEX, kita menambah nilai guna pada LATEX
yaitu tidak hanya sebagai pengaturan teks namun
dapat juga bekerja sebagai program penghitungan,
data, dan analisis.
8. BAB
Instalasi & Hello World 1
Pada bagian bab ini kita akan memberikan penjelasan mengenai instalasi PythonTEX di
komputermu, namun terlebih dahulu kita akan memberikan penjelasan tentang pengerti-an
Python dan LATEX, lingkungan Python atau sistem operasi yang bisa digunakan untuk
instalasi Python, distribusi Python/ versi Python yang digunakan, memulai dokumen se-derhana
di Python, editor yang digunakan dalam membuat maupun melakukan perubahan
dokumen Python serta persyaratan instalasi PythonTEX.
1.1 PYTHON DAN TEX
Python dibuat oleh Guido van Rossum dan proyek ini dimulai pada bulan Desem-ber
tahun 1989 di CWI(Centrum Wiskunde & Informatica), Inggris sebagai suksesor dari
bahasa pemrograman ABC yang terinspirasi oleh SETL memiliki kemampuan dengan sis-tem
operasi Amoeba. Python sendiri bukan berasal dari kelas Pythonidae dalam kerajaan
Hewan, tetapi Python berasal dari nama sebuah pertunjukkan sirkus yang digemari oleh
Guido yaitu Monty Python’s Flying Circus .
Python merupakan bahasa pemrograman yang bersifat interpreted artinya bahasa ini
mengenal apa yang diperintahkan kemudian langsung menjawab suatu perintah yang ki-ta
berikan sehingga untuk menggunakannya kita perlu mempunyai suatu interpreter dan
pada pemrograman Python sudah tersedia. Berbeda dengan bahasa TEX yang bersifat lite-rate
artinya kita terlebih dahulu menulis perintah kemudian perangkat akan memprosesnya
secara menyeluruh.
1.2 LINGKUNGAN PYTHON
Lingkungan Python tersedia di semua sistem operasi mulai seperti sistem operasi Win-dows,
Mac, Linux beserta distronya hingga sistem yang beroperasi pada telepon genggam.
5
9. 6 BAB 1. INSTALASI & HELLO WORLD
1.3 DISTRBUSI PYTHON
Distribusi Python terbagi menjadi dua versi, untuk versi saat ini : Python versi 2.7 dan
Python versi 3.4. Kedua versi ini berbeda satu sama lain dan untuk versi yang lebih baru
dapat diunduh di http://www.python.org.
1.4 INSTALASI PYTHON
Unduh program Python sesuai dengan sistem operasi yang kamu gunakan di situs ini
http://www.python.org atau ketik pada kotak pencarian Google dengan kata kunci Python.
Setelah kamu selesai melakukan proses unduh program, langkah selanjutnya instalasi per-angkat,
salah satu proses instalasi dengan sistem operasi Windows dapat diikuti langkah
-langkah sebagai berikut :
1. Klik ganda pada program Python yang telah kita unduh dan tunggu hingga muncul
kotak dialog perintah instalasi program.
2. Ikuti proses instalasi hingga selesai.
Setelah proses instalasi selasai, langkah selanjutnya kita akan membuat lingkungan
Python agar dapat terbaca pada sistem komputer, dengan langkah sebagai berikut :
• Klik kanan pada Computer kemudian pilih Properties.
• Pada bagian Properties, klik Advanced system settings maka akan akan muncul
kotak dialog System Propertis kemudian pilih Environment Variables.
• Pada bagian Enverinmonts Variables, lakukan perubahan pada system variables
dengan cara klik New untuk membuat sistem variabel baru pada program Python.
• Pada kotak dialog Edit Environment Variables dengan perubahan seperti ini :
Gambar 1.1
Kotak dialog Edit
Environment
Variables
• Klik OK untuk menyetujui perubahan pada variabel.
1.5 MEMULAI PERINTAH SEDERHANA DI PYTHON
Setelah selesai melakukan instalasi program Python, kita akan membuat perintah seder-hana
dengan sebagai berikut :
• Klik ikon Windows kemudian klik All Programs untuk mencari program Python
selanjutnya pada folder Python pilih Python(command line), maka akan keluar tampilan
dialog :
10. 1.6. EDITOR PYTHON 7
Gambar 1.2
Kotak dialog com-mand
line di Python
• Untuk melihat versi Python yang kita gunakan, buka command prompt dengan cara
klik ikon Windows + R pada keyboard kemudian ketik cmd lalu OK akan muncul kotak
dialog seperti ini :
C:Usershirwanto>python
% Tekan Enter pada keyboard
• Akan muncul penjelasan mengenai versi Python yang kita gunakan, seperti ini :
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation . All rights reserved .
C:Usershirwanto>python
Python 3.4.1 (v 3.4.1: c0e311e010fc, May 18 2014, 10:45:13) [MSC v.1600 64 bit (AM
D64)] on win32
Type ”help ”, ” copyright ”, ” credits ” or ” license ” for more information .
>>>
• Kita akan membuat perintah sederhana seperti ini :
>>> print("Hello World")
Maka akan menampilkan hasil :
>>> print("Hello World")
>>> Hello World
1.6 EDITOR PYTHON
Untuk menjalankan Python atau berinteraksi, kita memerlukan suatu editor atau interp-reter
agar dokumen yang kita buat dapat dilakukan kompilasi. Pada dasarnya, interpreter
Python sudah ada pada program Python itu sendiri dengan nama IDLE(Python’s Integra-ted
Development Environment). Namun ada juga yang tersedia gratis maupun berbayar
yaitu sebagai berikut :
1. PyCharm merupakan interpreter Python berbayar yang memiliki tampilan peng-gunaan
yang menarik dan mudah digunakan serta terintegrasi dengan perangkat Python.
2. Komodo edit merupakan interpreter Python berbayar dan juga memiliki tampilan
pengguna yang menarik, alternatif selain PyCharm.
3. Plugins pada Eclipse Java dengan melakukan instalasi plugins interpreter Python
yaitu PyDev sehingga kita dapat digunakan untuk membuat, kompilasi, atau melakukan
perubahan dokumen Python.
Berikut tampilan screenshoot PyCharm pada Windows :
11. 8 BAB 1. INSTALASI & HELLO WORLD
Gambar 1.3
Editor Python :
PyCharm
1.7 PERSYARATAN INSTALASI PYTHONTEX
PythonTEX merupakan paket dan program yang berguna untuk akses kode Python mela-lui
LATEX sehingga memudahkan kita untuk dapat menampilkan data dan hasil dalam satu
tempat di LATEX. Paket ini dibuat oleh Geoffrey . M. Poore. Untuk persyaratan instalasi
PythonTEX sebagai berikut :
1. Distribusi paket LATEXyang terinstal harus lengkap. Hal ini dikarenakan distribusi
paket PythonTEX memerlukan paket lainnya di LATEX.
2. PythonTEX memiliki dua komponen yaitu paket di LATEX dan module atau file de-ngan
ekstensi .py pada Python. Kedua komponen harus ada agar dapat melakukan insta-lasi
PythonTEX.
3. Kedua komponen ini meliputi beberapa file sebagai berikut :
• File dengan ekstensi .py, .bat merupakan module yang akan menjalankan seper-ti
ini PythonTEX. depythontex.bat, depythontex.py, depythontex2.py, depythontex3.py,
pythontex.bat, pythontex.py pythontex_2to3.py, pythontex_engines .py,pythontex_ install .py,
pythontex_ utils .py, pythontex2.py, pythontex3.py,pythontex_ install . bat, dan syncpdb.py
• File dengan ekstensi .dtx, .ins, .pdf merupakan paket dan penjelasan untuk in-stalasi
PythonTEX seperti NEWS,pythontex.dtx, pythontex.ins, pythontex.pdf, pythontex_
gallery .pdf, pythontex_ gallery . tex, pythontex_ quickstart .pdf, pythontex_ quickstart . tex, dan
README.
Semua file tersebut dapat diunduh di https://github.com/gpoore/pythontex.
1.8 INSTALASI PYTHONTEX
Setelah segala persyaratan untuk instalasi PythonTEX lengkap maka langkah selanjut-nya
ektraks file yang berbentuk .zip yang telah ada unduh dan tempatkan pada folder
12. 1.8. INSTALASI PYTHONTEX 9
baru. Untuk instalasi PythonTEX, buka command prompt1 maka ubahlah directory C: ke
directory D: dengan cara sebagai berikut :
% C:Usershirwanto>cd /d D:112. Marczellm beamerpythontex
% Misal nama directory seperti diatas lalu
% Tekan Enter pada keyboard akan muncul seperti ini
% D:112. Marczellm beamerpythontex
% lalu ketik perintah berikut :
% D:112. Marczellm beamerpythontex> python pythontex_ install .py
Jika proses instalasi gagal maka lakukan kompilasi kedua ektensi LATEX yaitu pythontex
. dtx dan pythontex.ins dengan cara klik PDFLATEX pada editor LATEX, hasil dari kedua
proses ini akan menghasilkan paket LATEX yaitu pythontex.sty. Selanjutnya kembali
dilakukan instalasi dan tunggu hingga proses instalasi selesai.
Untuk kompilasi dokumen yang memuat kode Python menggunakan PythonTEX dapat
dilakukan seperti ini :
% D:pythontex>python pythontex.py pythonctex
% D:pythontex merupakan tempat folder dokumen PythonTeX,
% python(nama program),
% pythontex.py merupakan module Python yang menjalankan proses pada PythonTeX,
% pythonctex merupakan nama dokumen LaTeX yang kita buat
% Tekan Enter untuk melakukan proses kompilasi .
Maka dokumen akan diproses oleh PythonTEX maka jika berjalan lancar tanpa ada ke-salahan,
akan muncul seperti ini :
D:pythontex>python pythontex .py pythonctex
This is PythonTeX 0.14
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
PythonTeX : pythontex − 0 error (s) , 0 warning(s)
Membuat dokumen sederhana dengan PythonTEX
Kita akan melakukan perhitungan sederhana dengan PythonTEX, misalkan penjumlahan
dua bilangan yaitu 2014+2009 maka perintah dalam dokumen LATEX salah satunya akan
seperti ini :
py{2014+2009}
Maka lakukan kompilasi dengan PDFLATEX, maka akan muncul seperti ini :
Gambar 1.4
Dokumen sebelum
dilakukan kompilasi
dengan PythonTEX
Hal ini disebabkan bahwa dokumen yang memuat kode Python belum diproses oleh
PythonTEX. Selanjutnya kita akan memproses dokumen dengan PythonTEX maka akan
tampilan seperti ini :
1Untuk membuka command prompt dan menjalankannya klik sebagai Administrator dengan cara klik kanan
mouse pada command prompt kemdian pilih Open as Administrator.
13. 10 BAB 1. INSTALASI & HELLO WORLD
Gambar 1.5
Dokumen setelah
dilakukan kompilasi
dengan PythonTEX
Maka akan menghasilkan nilai 2014+2009= py{2014+2009}(2014+2009= 4023).
14. BAB
Lingkungan PythonTEX 2
PythonTEX dibangun oleh Python dan dapat bekerja di LATEX sehingga memiliki ling-kungan
tersendiri agar dapat menjalankan perintah di LATEX dan mengakses kode Python.
Berikut ini lingkungan yang berada di PythonTEX yang kita gunakan untuk mendefinisikan
suatu perintah di LATEX.
2.1 PERINTAH DASAR
py merupakan representasi string pada argumennya, untuk contoh, py{2+4**2} akan
menghasilkan ”18”, dan py{'ABC'.lower()} akan menghasilkan ”abc”(hanya seperti
verb).
pyc digunakan untuk mengeksekusikan suatu kode. Standarnya, segalanya akan terce-tak
secara otomatis termasuk kedalam dokumen(lihat autoprint atau autostdout dalam
dokumentasi utama). Untuk contoh, pyc{var=2} akan membuat variabel, dan kemudian
nilainya bisa diakses selanjutnya melalui py{var}:2.
pyb digunakan untuk mengeksekusikan dan mengatur kode, untuk contoh yaitu pyb{var=2}
akan melakukan pengaturan var=2 dalam penambahan untuk membuat variabel. Jika se-galanya
tercetak, tidak secara otomatis termasuk, tetapi bisa diakses lewat printpythontex
atau stdoutpythontex.
pyv hanya digunakan untuk pengaturan kode, tidak bisa melakukan eksekusi. Untuk
contoh, pyv{var=2} akan menghasilkan var=2.
2.2 OPERASI DASAR DALAM MATEMATIKA
PythonTEX dapat melakukan operasi dasar dalam matematika seperti penjumlahan,
pengurangan, perkalian, dan pembagian.
11
15. 12 BAB 2. LINGKUNGAN PYTHONTEX
Penjumlahan dalam PythonTEX
Penjumlahan dalam PythonTEX menggunakan tanda plus(+). Berikut ini contohnya
yaitu :
begin{pyconsole}
var1=1+2
var1
end{pyconsole}
>>> var1=1+2
>>> var1
3
Perintah diatas dapat juga menggunakan perintah dibawah ini :
py{1+2}
3
Pengurangan dalam PythonTEX
Pengurangan dalam PythonTEX menggunakan tanda minus(-). Berikut ini contohnya
yaitu :
begin{pyconsole}
var2=1−20
var2
end{pyconsole}
>>> var2=1-20
>>> var2
-19
Perkalian dalam PythonTEX
Perkalian dalam PythonTEX menggunakan tanda star(*). Berikut ini contohnya yaitu
:
begin{pyconsole}
var3=2013*22015
var3
end{pyconsole}
>>> var3=2013*2015
>>> var3
4056195
Pembagian dalam PythonTEX
Pembagian dalam PythonTEX menggunakan tanda slash(/). Berikut ini contohnya ya-itu
:
begin{pyconsole}
var4=2013/2014
var4
end{pyconsole}
>>> var4=2013/2014
>>> var4
0.9995034756703078
16. 2.3. TAMPILAN PERINTAH DI PYTHONTEX 13
2.3 TAMPILAN PERINTAH DI PYTHONTEX
Perintah didalam PythonTEX merupakan perintah yang sama seperti di bahasa pem-rograman
Python dan hanya menambahkan perintah baru untuk melakukan pemanggilan
perintah ke program Python. Python yang didokumen ini menggunakan versi Python 3.4
dan sedikit berbeda dibandingkan versi Python 2.7. Untuk memulai kedua program ini,
kita akan memulai perintah sederhana yaitu dengan menampilkan kalimat ”Hello World”.
Perintah dalam menampilkan kalimat tersebut terdapat beberapa cara yaitu langsung me-nampilkan
kalimat atau dengan cara menampilkan kalimat yang sama seperti pada Python.
Tampilan perintah di PythonTEX menggunakan perintah sederhana sebagai berikut :
py{’Hello World’}
Perintah diatas digunakan untuk menampilkan kalimat ”Hello World seperti ini :
Hello World
Hasil diatas dapat dilakukan juga dengan cara berikut ini :
begin{pyconsole}
print (’ Hello World’)
end{pyconsole}
>>> print('Hello World')
Hello World
Atau kamu bisa juga dengan menggunakan cara berikut ini dan menghasilkan keluaran
yang sama :
begin{pyconsole}
print (”Hello World”)
end{pyconsole}
>>> print("Hello World")
Hello World
Perintah dalam menampilkan suatu kalimat didalam bahasa pemrograman di Python 3.4
menggunakan tanda petik (’) atau dengan menggunakan tanda petik(”). Hal itu tentu ber-beda
dengan versi Python 2.7. Jika Anda menggunakan versi Python 2.7 dapat mengha-silkan
keluaran yang sama, hanya diganti perintah yang ada dalam Python 2.7.
2.4 PESAN KESALAHAN DALAM PYTHONTEX
Pesan kesalahan dalam PythonTEX dapat ditampilkan pada keluaran dokumen yang
kita buat. Misalkan ketika kita akan menampilkan kalimat ”Hello World” yang tidak sesuai
dengan perintah dalam Python, seperti ini contohnya yaitu :
begin{pyconsole}
Hello World
end{pyconsole}
Akan menghasilkan suatu pesan kesalahan di keluaran dokumen seperti ini :
>>> Hello World
File "<stdin>", line 1
Hello World
^
SyntaxError: invalid syntax
17. BAB
3 Penggunaan PythonTEX
PythonTEX sangat berguna dalam mengakses kode Python di LATEX secara langsung, se-hingga
memungkinkan kita bekerja ke cakupan yang lebih luas. Misalnya, Python memili-ki
suatu module yang berorientasi pada data, grafik, analisis di bidang akademik sehingga
kita dapat mengaksesnya hanya melalui dokumen LATEX. Pada bab ini kita akan memberik-an
penjelasan tentang penggunan PythonTEX meliputi akses module Matplotlib, NumPy,
SciPy dan SymPy.
3.1 MATPLOTLIB
Matplotlib merupakan sekumpulan perintah untuk membuat grafik atau plot dua di-mensi
menggunak perintah array di bahasa pemrograman Python. Meskipun asalnya dari
perintah program MATLAB dan bisa digunakan di lingkungan Python sebagai sebagai
cara yang berorientasi pada objek. Meskipun matplotlib ditulis secara murni dalam ba-hasa
Python, inilah yang membuat sulit menggunakan NumPy dan perluasan kode yang
lainnya untuk memberikan kinerja yang baik bahkan untuk array yang besar.
Pyplot
Pyplot merupakan sekumpulan perintah suatu fungsi yang membuat matplotlib bekerja
seperti kita menggunakan MATLAB. Setiap fungsi pyplot membuat beberapa perubahan
untuk sebuah gambar seperti membuat sebuah gambar, membuat area plot gambar, mela-kukan
plot beberapa baris pada area plot, melakukan dekorasi plot dengan label dan lain
sebagainya.
Matplotlib.pyplot berguna secara standar yang mana tetap menjadi jarak gambar secara
langsung dan area plot dan juga fungsi plot diarahkan ke titik koordinat.
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.ylabel( ' some numbers ' )
plt.show()
14
18. 3.2. NUMPY 15
3.2 NUMPY
Akses ke Python tidak hanya mengakses kode tetapi beserta modulenya dapat kita gu-nakan
di LATEX, salah satunya module dengan NumPy. NumPy merupakan module yang
dikhususnya untuk menganalisa data dan direpresentasi kedalam bentuk array(susunan).
Untuk dapat mengaksesnya kita gunakan perintah berikut ini :
begin{sympyblock}
import numpy as np
A = np.matrix([[3, 6, -5],
[1, -3, 2],
[5, -1, 4]])
B = np.matrix([[12],
[-2],
[10]])
end{sympyblock}
3.3 SCIPY
SciPy merupakan singkatan dari scientific python juga sekumpulan dari perintah dalam
melakukan perhitungan, untuk dapat mengaksesnya perintah berikut ini :
begin{pylabblock}
from scipy.integrate import quad
myintegral = quad(lambda x: e**-x**2, 0, inf)[0]
end{pylabblock}
19. 16 BAB 3. PENGGUNAAN PYTHONTEX
3.4 SYMPY
SymPy merupakan singkatan dari symbolic python artinya sekumpulan notasi/simbol
untuk mengakses kode Python dalam melakukan perintah perhitungan, dapat dilakukan
perintah berikut ini :
begin{sympyblock}
from sympy import *
x, y, z, t = symbols('x y z t')
k, m, n = symbols('k m n', integer=True)
f, g, h = map(Function, 'fgh')
end{sympyblock}
20. BAB
Matplotlib 4
Pada bagian bab ini akan diberikan penjelasan mengenai ”Matplotlib”. Matplotlib me-rupakan
salah satu module dari Python yang digunakan dalam bidang akademisi untuk
membuat grafik, kurva, plot maupun interpretasi suatu fungsi yang diberikan. Berbeda
dengan kebanyakan perangkat yang bersifat berbayar seperti Maple, Mathematica, MAT-LAB,
maupun MathStudio, perangkat ini bersifat open source artinya perangkat ini ber-sifat
gratis, dapat dimodifikasikan kode sumbernya berdasar pada aturan lisensi terbuka.
Kita dapat mengubah, modifikasi, dan juga dapat berkontribusi pada Matplotlib sehingga
kita dapat menggunakannya tanpa khawatir terhadap lisensi.
4.1 INSTALASI MATPLOTLIB
Matplotlib tersedia disemua sistem operasi seperti Windows, Mac OS X, Linux beserta
distronya sehingga distribusi matplotlib juga berbeda disesuaikan dengan sistem operasi
yang digunakan dan untuk instalasinya berbeda satu sama lainnya. Berikut ini langkah
-langkah instalasi setiap perangkat yaitu :
Instalasi Module lengkap
Pada bagian ini kita tidak memerlukan instalasi satu persatu perangkat module yang
digunakan untuk keperluan akademisi seperti perhitungan, data maupun analisis. Semua
module ini sudah tersedia dalam satu perangkat yaitu Anaconda. Perangkat ini tersedia
di sistem operasi Windows, Mac OS X, dan Linux beserta distronya. Kemudahan dari
perangkat ini semua module seperti matplotlib, scipy, numpy, sympy dan beberapa module
yang berguna sudah tersedia. Alternatif untuk distribusi selain Anaconda yaitu Canoopy
dan untuk distribusi Windows yaitu Python(x,y).
Linux : Menggunakan package manager
Jika kamu menggunakan sistem operasi Linux, kamu harus menggunakan package ma-nager,
matplotlib tersedia di hampir setiap distro Linux. Berikut ini langkah instalasinya
:
• Debian/Ubuntu : sudo apt-get install python-matplotlib.
• Fedora/Redhat : sudo yum install python-matplotlib.
17
21. 18 BAB 4. MATPLOTLIB
Mac OS X : Menggunakan pip
Jika kamu menggunakan sistem operasi Mac OS X, kamu kemungkinan bisa melakukan
instalasi binary matplotlib menggunakan instalasi standar Python dengan program pip.
Windows
Jika tidak menginginkan melakukan instalasi program Python, kita merekomendasikan
menggunakan distribusi program saintis Python yang lengkap seperti Python(x,y), En-thought
Canopy, atau Continuum Anaconda yang telah tersedia distribusi matplotlib dan
beberapa module yang berguna lainnya. Untuk proses instalasi standar Python, kamu ju-ga
memerlukan versi yang kompatibel seperti setuptools, numpy, python-dateutil, pytz,
pyparsing, dan six untuk menjalankan program matplotlib. Didalam kasus Python tidak
melakukan instalasi setiap pengguna seperti Microsoft Visual C ++ 2008 untuk versi 64-
bit atau 32-bit yang digunakan untuk versi Python 2.6 atau 3.2 atau Microsoft Visual C++
2010 untuk versi 64-bit atau 32-bit yang digunakan untuk versi Python 3.3 dan 3.4 yang
perlu diinstal di komputermu agar dapat menjalankan program matplotlib.
Matplotlib juga berpengaruh pada module Pillow yang digunakan untuk membaca dan
melakukan penyimpanan file yang berbentuk gambar dengan file JPEG,BMP, dan TIFF.
Matplotlib juga meminta melakukan instalasi program MikTEX dan Ghostscript, jika ka-mu
menginginkan melakukan konversi dengan LATEX. Selain itu, matplotlib juga meminta
melakukan instalasi module seperti FFmpeg, avconv, mencoder, atau ImageMagick, jika
kamu mengginginkan file animasi gambar.
Instalasi dari Sumber : Matplotlib
Jika kamu menginginkan melakukan instalasi dari sumber program Matplotlib, pada
dasarnya sudah tersedia file dengan ekstensi .exe dan jika kamu menggunakan file dengan
instalasi .rar atau .zip. Langkah -langkah instalasi sebagai berikut :
% cd matplotlib
% python setup.py install
% tunggu hingga selesai
4.2 PERSYARATAN DALAM MENJALANKAN MATPLOTLIB
Persyaratan dalam menjalankan matplotlib memerlukan beberapa module sebagai beri-kut
:
• Python 2.6, 2.7, 3.3 atau 3.4, unduh di htttp://www.python.org/download/.
• Numpy versi 1.6 atau kebawah memberikan dukungan terhadap array. Untuk insta-lasi
ikuti langkah berikut :
1. Jika kamu menggunakan pip, lakukan instalasi berikut :
$ pip install numpy
Instalasi ini meminta jaringan internet harus tersedia.
2. Jika kamu menggunakan easy_install, lakukan instalasi berikut :
$ easy_install numpy
22. 4.3. TUTORIAL PYPLOT 19
Instalasi ini juga meminta jaringan internet harus tersedia.
3. Untuk instalasi manual maka ikuti langkah berikut :
$ cd numpy
$ python setup.py install
% Tunggu hingga proses instalasi selesai.
Instalasi tidak memerlukan jaringan internet namun kamu memerlukannya ketika me-lakukan
pengunduhan module numpy.
• dateutil 1.1 atau versi kebawah. Untuk instalasi lakukan hal yang sama seperti num-py.
Module ini berguna untuk pengaturan waktu.
• pyparsing, six 1.4 atau versi kebawah, libpng 1.2 atau versi kebawah, dan pytz me-rupakan
beberapa module yang diperlukan untuk menjalankan matplotlib.
4.3 TUTORIAL PYPLOT
matplotlib.pyplot merupakan sekumpulan dari perintah yang dapat bekerja di ma-tplotlib
seperti yang ada di program MATLAB. Kita akan menggambar sebuah plot dengan
menggunakan matplotlib,perintahnya secara umum sebagai berikut :
plot()
plot() merupakan perintah sebarang bilangan yang akan dimasukkan, misalkan kita
akan menggambar plot 푥, 푦 dengan perintah berikut :
plt.plot([1,2,3,4],[1,4,9,16])
Untuk setiap pasangan diatas yaitu terdiri dari variabel atau argumen 푥 dan 푦 serta ada
juga argumen ketiga yang dapat kita tambahkan yaitu format string dengan perintah pe-warnaan
garis dan tipe garis pada plot yang dibuat. Tulisan dan format string diambil dari
perintah di MATLAB, secara standar warna pada garis adalah berwarna biru disimbolkan
dengan tanda 'b'. Misalkan kita akan memberikan pengaturan warna pada plot yang di-buat
dengan warna merah dan lingkaran, kamu bisa lakukan dengan cara menambahkan
arguman ketiga dengan tanda 'ro' artinya red circle (lingkaran merah) seperti ini :
import matplotlib.pyplot as plt
plt.plot([1,2,3,4], [1,4,9,16], ' ro ' )
plt.axis([0, 6, 0, 20])
plt.show()
Gambar hasil matplotlib tidak dapat ditampilkan secara langsung di LATEX dan untuk
menampilkan kita dapat menyisipkan gambar dalam format .jpg dengan perintah
begin{ figure }
...
end{figure}
Perintah pada bagian baris pertama selalu disisipkan jika kita ingin membuat suatu plot
di matplotlib, hal ini berbeda dengan program lainnya seperti MATLAB, Maple atau Ma-thematica
dikarenakan perintah dalam matplotlib memerlukan suatu module berbeda se-hingga
dengan adanya perintah ini ditujukan untuk memanggil module tertentu yang di-perlukan
seperti ini :
import matplotlib.pyplot as plt
23. 20 BAB 4. MATPLOTLIB
Untuk menghasilkan plot dengan pemrograman Python dan module matplotlib dapat
dilakukan seperti ini :
1. Buka IDLE Python kemudian buatlah dokumen baru dengan cara klik File > New
File lalu klik Edit >Paste kode yang diberikan diatas.
import matplotlib.pyplot as plt
plt.plot([1,2,3,4], [1,4,9,16], ' ro ' )
plt.axis([0, 6, 0, 20])
plt.show()
2. Selanjutnya simpan dokumen dengan ekstensi .py.
3. Lakukan kompilasi dengan klik Run > Run Module(F5)
4. Akan didapat hasil seperti ini :
Gambar 4.1
Plot dengan warna
lingkaran merah
Sumber: Matplotlib
Python, 9 Desember
2014
Pada hasil gambar diatas plot yang dihasilkan terbatas pada titik -titik maksimum dan
minimum saja dengan aturan seperti [xmax,xmin,ymax, ymin] dan titik -titik tertentu
saja yang ditampilkan lalu bagaimana kita akan menampilkan suatu titik -titik secara me-nyeluruh
dengan data yang diberikan dan memuat banyak titik. Kita bisa lakukan dengan
perintah pada module numpy. Module ini berguna untuk menampilkan daftar titik -titik
dalam bentuk array kemudian menampilkan dalam bentuk plot dengan tampilan deretan
titik -titik. Untuk perintahnya sebagai berikut :
import numpy as np
import matplotlib.pyplot as plt
# evenly sampled time at 200ms intervals
t = np.arange(0., 5., 0.2)
# red dashes, blue squares and green triangles
plt.plot(t, t, ' r-- ' , t, t**2, ' bs ' , t, t**3, ' g^ ' )
plt.show()
Perintah diatas akan menghasilkan gambar seperti ini :
Gambar 4.2
Plot dengan tam-bahan
module
NumPy
Sumber: Matplotlib
Python, 9 Desember
2014, jam 8:37
24. 4.4. PENGATURAN GARIS 21
4.4 PENGATURAN GARIS
Garis mempunyai banyak atribut yang bisa kamu atur seperti : lebar garis(linewidth),dash
style, antialiased, dan lain sebagainya. Berikut ini beberapa cara dalam pengaturan garis :
• Menggunakan argumen kata kunci :
plt.plot(x,y,linewidth=2.0)
• Menggunakan metode pengaturan jarak Line2D. Plot yang diberikan akan kembali
dalam daftar garis seperti line1,line2=plot(x1,y1,x2,y2). Dibawah ini saya hanya
memberikakan satu garis sehingga daftar panjangnya garis adalah 1 satuan. Saya meng-gunakan
tuple
line, = plt.plot(x, y, ' - ' )
line.set_antialiased(False) # turn off antialising
• Menggunakan perintah sep(). Contoh dibawah ini menggunakan perintah yang ada
pada MATLAB untuk pengaturan daftar garis, sedangkan setp() bekerja secara trans-paran
dengan daftar objek atau objek tunggal. Kamu bisa salah satunya menggunakan
argumen kata kunci atau pasangan nilai/string pada perintah di MATLAB.
lines = plt.plot(x1, y1, x2, y2)
# use keyword args
plt.setp(lines, color= ' r ' , linewidth=2.0)
# or MATLAB style string value pairs
plt.setp(lines, ' color ' , ' r ' , ' linewidth ' , 2.0)
Berikut ini daftar perintah dari Line2D
Tabel 4.1
Daftar Perintah yang tersedia di Line2D
Property Value Type Property Value Type
alpha float animated [True | False]
antialiased or aa [True | False] clip _box a matplotlib.transform.Bbox instance
clip _on [True | False] clip _path a Path instance and a Transform instance, a Patch
color or c any matplotlib color contains the hit testing function
dash_capstyle [ ’butt’ | ’round’ | ’projecting’ ] dash_ joinstyle [ ’miter’ | ’round’ | ’bevel’ ]
dashes sequence of on/off ink in points data (np.array xdata, np.array ydata)
figure a matplotlib.figure.Figure instance label any string
linestyle or ls [ ’-’ | ’--’ | ’-.’ | ’:’ | ’steps’ | ...] linewidth or lw float value in points
lod [True | False] marker [ ’+’ | ’,’ | ’.’ | ’1’ | ’2’ | ’3’ | ’4’ ]
markeredgecolor or mec any matplotlib color markeredgewidth or mew float value in points
markerfacecolor or mfc any matplotlib color markersize or ms float
markevery [ None | integer | (startind, stride) ] picker used in interactive line selection
pickradius the line pick selection radius solid _capstyle [ ’butt’ | ’round’ | ’projecting’ ]
solid _ joinstyle [ ’miter’ | ’round’ | ’bevel’ ] transform a matplotlib.transforms.Transform instance
visible [True | False] xdata np.array
ydata np.array zorder any number
Sumber: Matplotlib documentations Release 1.4.2, dengan perubahan seperlunya tertanggal 9 Desember 2014, jam 9 :54
4.5 PENGATURAN DAN KONTROL BANYAK GAMBAR DAN KOORDINAT
MATLAB dan pyplot mempunyai konsep secara langsung pada gambar dan koordi-nat.
Semua perintah pengaturan dan tampilan plot diaplikasikan ke plot langsugng. Fungsi
25. 22 BAB 4. MATPLOTLIB
gca() akan mengembalilkan ke koordinat langsung yaitu jarak koordinat pada matplotlib
sedangkan untuk fungsi gcf() akan mengembalikan ke pada perintah pengaturan jaraka
gambar pada matplotlib. Umumnya, kamu tidak harus khawatirkan tentang ini, semua per-intah
diambil dibawah pemrosesan program. Berikut diberikan contoh untuk menggambar
dua plot dan dimasukkan ke dalam plot bagian yang sejajar :
import numpy as np
import matplotlib.pyplot as plt
def f(t):
return np.exp(-t) * np.cos(2*np.pi*t)
t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)
plt.figure(1)
plt.subplot(211)
plt.plot(t1, f(t1), ' bo ' , t2, f(t2), ' k ' )
plt.subplot(212)
plt.plot(t2, np.cos(2*np.pi*t2), ' r-- ' )
plt.show()
Gambar 4.3
Plot dengan dua
gambar
Sumber: Matplotlib
Python, 9 Desember
2014, jam 10:07
Perintah figure() disini adalah pilihan karena figure(1) telah dibuat hanya seper-ti
perintah subplot(111) yang dibuat secara standar, jadi kamu tidak perlu secara ma-nual
melakukan pengaturan koordinat. Subplot() digunakan untuk pengaturan numrows,
numcols, fignum dimana fignum mempunyai jarak 1 sampai numrows*numcols. Tanda
koma dalam perintah subplot digunakan sebagia pilihan jika numrows*numcols<10. Jadi
subplot(211) adalah identik dengan subplot(2,1,1). Kamu bisa membuat sebarang banyak-nya
subplot dan koordinat. Jika kamu ingin menempatkan koordinat secara manual bukan
berbentuk grid persegi, gunakan perintah axes() yang digunakan untuk spesifikasi lo-kasi
koordinat yaitu kiri, kanan, bawah, dan atas, dimana untuk semua fungsi koordinat
dari 0 sampai 1. Kamu bisa membuat banyak gambar menggunakan perintah figure()
yang dapat dilakukan dengan penomoran angka yang meningkat pada penomoran gambar.
Tentunya, setiap gambar bisa memuat sebanyak koordinat dan dan subplot yang kamun
inginkan.
4.6 BEKERJA DENGAN TEKS
Perintah text() bisa digunakan sebarang tempat atau lokasi pada gambar yang akan
diberi keterangan dan seperti pada penempatan di xlabel(), label() dan title() yang
biasa digunakan untuk penambahan keterangan berupa teks sebagai berikut :
26. 4.7. MENGGUNAKAN NOTASI MATEMATIKA DIDALAM TEKS 23
import numpy as np
import matplotlib.pyplot as plt
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
# the histogram of the data
n, bins, patches = plt.hist(x, 50, normed=1, facecolor= ' g ' , alpha=0.75)
plt.xlabel( ' Smarts ' )
plt.ylabel( ' Probability ' )
plt.title( ' Histogram of IQ ' )
plt.text(60, .025, ' $mu=100, sigma=15$ ' )
plt.axis([40, 160, 0, 0.03])
plt.grid(True)
plt.show()
Gambar 4.4
Plot dengan kete-rangan
teks
Sumber: Matplotlib
Python, 9 Desember
2014, jam 11:06
Semua perintah text() akan kembal pada perintah matplotlib.text.Text instance.
Seperti baris perintah diatas, kamu bisa menggunakan pengaturan fungsi dengan perintah
setp() seperti ini :
t = plt.xlabel( ' my data ' , fontsize=14, color= ' red ' )
4.7 MENGGUNAKAN NOTASI MATEMATIKA DIDALAM TEKS
Matplotlib dapat mengakses perintah atau persamaan TEX atau LATEX disebarang teks.
Untuk contohnya, kita akan membuat suatu perintah yaitu 휎푖 = 15 disisipkan kedalam
judul, kamu bisa menggunakan perintah berikut :
plt.title(' $sigma_i=15$ ' )
4.8 PENAMBAHAN KETERANGAN
Perintah dasar text() ditempatkan pada teks disebarang posisi koordinat. Didalam ka-sus
penggunaan kita menginginkan penempatan teks tepat diatas grafik atau grafik tertentu
untuk memperjelas, dan kamu bisa menggunakan metode annotate() yang memudahk-an
kita dalam menambahkan keterangan. Ada dua penempatan dalam metode ini yaitu
perintah dengan argumen xy dan argument xytext. Kedua perintah dengan argumen ini
didasarkan pada tuple (x,y).
import numpy as np
import matplotlib.pyplot as plt
27. 24 BAB 4. MATPLOTLIB
ax = plt.subplot(111)
t = np.arange(0.0, 5.0, 0.01)
s = np.cos(2*np.pi*t)
line, = plt.plot(t, s, lw=2)
plt.annotate( ' local max ' , xy=(2, 1), xytext=(3, 1.5),
arrowprops=dict(facecolor= 'g' , shrink=0.05),
)
plt.ylim(-2,2)
plt.show()
Gambar 4.5
Plot dengan penam-bahan
keterangan
Sumber: Matplotlib
Python, 9 Desember
2014, jam 11:26
4.9 NAVIGASI INTERAKTIF
Ketika kita membuatu suatu plot pada matplotlib maka akan terdapat suatu perangkat
penampil plot yang kita buat dalam jendela tersendiri seperti ini :
Gambar 4.6
Navigasi Interaktif
Matplotlib
Sumber: Matplotlib
Python, 9 Desember
2014, jam 11:33
Berikut ini akan diberikan penjelasan mengenai tampilan interaktif diatas :
1. Ikon Home/Reset, digunakan sebagai tempat plot dan mengembalikan plot yang
diubah.
2. Ikon Forward/Back, digunakan untuk tampilan sebelum dan sesudah.
28. 4.10. LOGO MATPLOTLIB 25
3. Ikon Pan/Zoom, digunakan untuk menggeser dan memperbesar plot.
4. Ikon Zoom to Rectangle, digunakan untuk memperbesar gambar sesuai ukuran
persegi yang kita buat untuk memperbesar bagian tertentu.
5. Ikon Subplot, digunakan untuk membat plot bagian.
6. Ikon Save,digunakan untuk menyimpan file gambar dalam bentuk .png, .eps,
.pgf, .pdf, .ps, .rgba, .raw, dan .svg, .svgz.
4.10 LOGO MATPLOTLIB
Matplotlib memiliki logo yang juga dihasilkan dengan menggunakan matplotlib seperti
ini kode nya :
Gambar 4.7
LOGO Matplotlib
Sumber: Matplotlib
Python, 9 Desember
2014, jam 12:21 dan
Desain logo ini dibuat
oleh Tony Yu
"""
Thanks to Tony Yu <tsyu80@gmail.com> for the logo design
"""
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.cm as cm
mpl.rcParams['xtick.labelsize'] = 10
mpl.rcParams['ytick.labelsize'] = 12
mpl.rcParams['axes.edgecolor'] = 'gray'
axalpha = 0.05
#figcolor = '#EFEFEF'
figcolor = 'white'
dpi = 80
fig = plt.figure(figsize=(6, 1.1), dpi=dpi)
fig.figurePatch.set_edgecolor(figcolor)
fig.figurePatch.set_facecolor(figcolor)
def add_math_background():
ax = fig.add_axes([0., 0., 1., 1.])
text = []
text.append(
(r"$W^{3beta}_{delta_1 rho_1 sigma_2} = "
r"U^{3beta}_{delta_1 rho_1} + frac{1}{8 pi 2}"
r"int^{alpha_2}_{alpha_2} d alpha^prime_2 "
r"left[frac{ U^{2beta}_{delta_1 rho_1} - "
30. 4.11. BEKERJA DENGAN TEKS LEBIH LANJUT 27
4.11 BEKERJA DENGAN TEKS LEBIH LANJUT
Matplotlib mempunyai pengaturan terhadap penambahan teks pada suatu plot dengan
nama dengan dukungan terhadap notasi matematika, font modern seperti truetype, vektor,
dan dukungan terhadap unicode. Karena itu, kita bisa menyisipkan font secara langsung
kedalam keluaran dokumen seperti ekstensi .pdf atau postscript. Dukungan Freetype2
dapat menghasilkan font yang sangat bagus dan dengan ukuran file yang kecil. Matplot-lib
dengan dukungannya termasuk kedalam matplotlib . font_manager yang berguna hampir
setiap sifat pengaturan tulisan yaitu ukuran, bentuk, lokasi atau penempatan tekas,warna
dan lain sebagainya. Dukungan ini juga menarik pada penyisipan file teks dalam bentuk
simbol TEX di plot yang kamu buat.
Error
Kode contoh pe-nambahan
teks di
matplotlib tidak bi-sa
digunakan
Perintah dasar dalam pengaturan teks
Dibawah ada sejumlah perintah yang digunakan dalam membuat teks didalam tampilan
pyplot yaitu sebagai berikut :
• text ( ), digunakan untuk teks disebarang penempatan koordinat ;
matplotlib.axes.Axes.text() didalam API.
• xlabel(), digunakan untuk menambahkan teks pada sumbu 푥; matplotlib . axes .
Axes.set_xlabel didalam API.
• ylabel(), digunakan untuk menambahkan teks pada sumbu 푦; matplotlib . axes .Axes
.set_ylabel didalam API.
• title(), digunakan untuk menambahkan teks judul; matplotlib . axes .Axes.set_ title
() didalam API.
• figtext(), digunakan untuk menambahkan teks disebarang penempatan gambar;
matplotlib . figure . Figure . text () didalam API.
• suptitle(), digunakan untuk menambahkan judul ke gambar ; matplotlib . figure .
Figure . suptitle () didalam API.
• annotate(), digunakan untuk penambahan keterangan dengan pilihan tanda panah
ke koordinat yang dituju; matplotlib . axes .Axes.annotate () didalam API.
Semua fungsi ini dibuat dan dikembalikan ke perintah matplotlib . text . Text () yang di-konfigurasikan
dengan beragam font dan sifat lainnya. Dibawah ini diberikan contoh yang
menampilkan semua perintah diatas sebagai berikut :
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
fig = plt.figure()
fig.suptitle( ' bold figure suptitle ' , fontsize=14, fontweight= ' bold ' )
ax = fig.add_subplot(111)
fig.subplots_adjust(top=0.85)
ax.set_title( ' axes title ' )
ax.set_xlabel( ' xlabel ' )
ax.set_ylabel( ' ylabel ' )
ax.text(3, 8, ' boxed italics text in data coords ' , style= ' italic ' ,
bbox={ ' facecolor ' : ' red ' , ' alpha ' :0.5, ' pad ' :10})
ax.text(2, 6, r ' an equation: $E=mc^2$ ' , fontsize=15)
ax.text(3, 2, unicode( ' unicode: Institut f374r Festk366rperphysik ' , ' latin-1 ' ))
ax.text(0.95, 0.01, ' colored text in axes coords ' ,
verticalalignment= ' bottom ' , horizontalalignment= ' right ' ,
transform=ax.transAxes,
color= ' green ' , fontsize=15)
32. BAB
NumPy 5
NumPy merupakan singkatan dari numerical Python yang menjelaskan dan menam-pilkan
data dalam bentuk susunan atau array dengan tipe narray dan juga menjelaskan
”item” kedalam tipe yang sama. Item bisa ditandai dengan menggunakan,contohnya de-ngan
bilangan bulat ,푁. Semua masukkan dalam NumPy adalah homogen artinya setiap
item dimasukkan kedalam ukuran blok penyimpanan dan akses yang sama serta semua
blok diinterpretasikan dalam jalan yang sama. Bagaimanapun setiap item didalam su-sunan
diinterpretasikan dalam beberapa bagian terpisah tergantung tipe objek data yang
berhubungan dengan setiap susunan. Tambahan, untuk tipe dasar seperti integer,float dan
lain sebagainya, tipe objek data juga direpresentasi kedalam bentuk/struktur data. Sebuah
item diektraks dari sebuah array menggunakan tanda indeks yang direpresentasikan oleh
objek pemrograman Python yang salah tipe skalar array yang dibangun didalam NumPy.
Skalar array lebih mudah dimanipulasi juga lebih komplit dalam pengaturan data.
Gambar 5.1
Konsep proses Num-
Py
Sumber: NumPy Python,
9 Desember 2014, jam
14:29
5.1 SUSUNAN DIMENSI -푁
푁 − 푑푎푟푟푎푦 atau susunan dimensi-푁 merupakan sekumpulan item dengan ukuran ba-nyak
yang memuat tipe dan ukuran sama. Banyaknya item dan ukuran dalam array dide-finisikan
sebagai tuple bilangan bulat 푁 positif dispesifikasikan untuk setiap ukuran. Tipe
item didalam array diatur dengan pembagian tipe data objek terpisah dengan nama dtype
yang terhubung dengan setiap ndarray. Dengan muatan yang lain di pemrogram Python,
narray dapat diakses dan dilakukan modifikasi dengan menggunakan indeks atau pemo-tongan
array, contoh bilangan bulat 푁 melalu metode dan atribut dari ndarray. Berbeda
ndarrays bisa berbagi data yang sama sehingga perubahan yang dibuat salah satunya bisa
dibuat oleh ndarray lainnya.
29
33. 30 BAB 5. NUMPY
Berikut ini perintah sederhana dalam menampilkan NumPy
>>> x = np.array([[1, 2, 3], [4, 5, 6]], np.int32)
>>> type(x)
<type 'numpy.ndarray'>
>>> x.shape
(2, 3)
>>> x.dtype
dtype('int32')
CONTOH 5.1
Perintah dasar da-lam
NumPy
Perintah diatas menentukkan tipe array dapat hasilkan sebagai berikut :
begin{pyconsole}
x = np.array([[1, 2, 3], [4, 5, 6]], np.int32)
type(x)
end{pyconsole}
Didapatkan hasil seperti dibawah ini :
>>> x = np.array([[1, 2, 3], [4, 5, 6]], np.int32)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'np' is not defined
>>> type(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
Hasil kode diatas menunjukkan terjadi error atau kesalahan dalam mendefinisikan suatu
perintah di NumPy seharusnya terlebih dahulu kita sisipkan diawal kode dengan perintah :
import numpy as np
Untuk kode lengkapnya akan seperti ini :
begin{pyconsole}
import numpy as np
x = np.array([[1, 2, 3], [4, 5, 6]], np.int32)
type(x)
x.shape
x.dtype
end{pyconsole}
Perintah ini akan menjalankan proses dan hasil seperti ini :
>>> import numpy as np
>>> x = np.array([[1, 2, 3], [4, 5, 6]], np.int32)
>>> type(x)
<class 'numpy.ndarray'>
>>> x.shape
(2, 3)
>>> x.dtype
dtype('int32')
34. 5.1. SUSUNAN DIMENSI -푁 31
Numpy juga bisa menyoroti suatu bilangan dengan cara seperti ini :
>>> x[1,2] # artinya baris kedua dan kolom ketiga dalam matrik 2x3
6
Kamu bisa juga memotong array dengan cara seperti ini :
>>> y = x[:,1]
>>> y
array([2, 5])
>>> y[0]=9 # pengaturan ini bisa mengubah nilai pada emph{entry} matriks
>>> y
array([9, 5])
>>> x
array([[1, 9, 3],
[4, 5, 6]])
35. BAB
6 SciPy
SciPy merupakan koleksi algoritama matematika dan fungsi yang dibangun untuk mem-perluas
dari module NumPy. Module ini secara signifikan dapat bersaing dengan program
yang sama seperti MATLAB, IDL, Octave, R-Lab dan SciLab, namun perangkat ini bersi-fat
terbuka, bebas digunakan, dimodifikasi, dan gratis. Kita akan asumsikan bahwa dalam
membuat dan memanggil perintah Scipy selalu diawali dengan perintah berikut ini :
>>> import numpy as np
>>> import scipy as sp
>>> import matplotlib as mpl
>>> import matplotlib.pyplot as plt
Perintah diatas merupakan perintah yang harus bila ingin menggunakan module numpy,
scipy, matplotlib, dan plot matplotlib.
6.1 SUB -SCIPY
Scipy sendiri memiliki beberapa module bagian yang memiliki fungsi dan tujuan masing
-masing sebagai berikut :
Tabel 6.1
Daftar Perintah yang tersedia di Sub-Scipy
Sub-Scipy Description Sub-Scipy Description
cluster Clustering algorithms constants Physical and mathematical constants
fftpack Fast Fourier Transform routines integrate Integration and ordinary differential equation solvers
interpolate Interpolation and smoothing splines io Input and Output
linalg Linear algebra ndimage N-dimensional image processing
odr Orthogonal distance regression optimize Optimization and root-finding routines
signal Signal processing sparse Sparse matrices and associated routines
spatial Spatial data structures and algorithms special Special functions
stats Statistical distributions and functions weave C/C++ integration
Sumber: Scipy documentations ref Release 0.14.0, dengan perubahan seperlunya tertanggal 9 Desember 2014, jam 16:08
32
36. 6.1. SUB -SCIPY 33
Sub-Scipy perlu diatur secara terpisah untuk memanggil perintah tersebut yaitu :
>>> from scipy import linalg, optimize
37. BAB
7 SymPy
SymPy atau Symbolic Python merupakan sekumpulan simbol yang digunakan untuk
perhitungan di pemrograman Python. Ini berguna untuk perhitungan aljabar dan sebagai
perangkat komputer aljabar yang berada pada perangkat Python serta berguna juga dalam
aplikasi lain. Didalam SymPy terdapat perhitungan dasar seperti kalkulus, aljabar, mate-matika
diskrit, dan fisika kuantum. Perangkat ini tersedia gratis dan dibawah lisensi New
BSD. Proyek pembuat ini dipimpin oleh seorang pengembang bernama Ondrej Certik dan
Aaron Meurer. Perhitungan dengan menggunakan SymPy bukan pendekatan hasil tetapi
menggunakan simbol atau notasi matematika. Misalkan kita ingin mendapatkan hasil dari
akar bilangan 9 maka dengan menggunakan perintah biasa seperti ini :
>>> import math
>>> math.sqrt(9)
3.0
Tentunya, kamu akan dapatkan hasil dari akar tersebut adalah 3. Kamu juga bisa meng-gunakan
perintah SymPy yaitu sebagai berikut :
>>> math.sqrt(9)
3.0
Maka kamu akan mendapatkan hasil yang sama yaitu 3. Berbeda jika kamu ingin men-dapatkan
akar bilangan 8 tanpa menggunakan SymPy dan dengan menggunakan SymPy.
Contoh dibawah ini, tanpa menggunakan SymPy :
>>> math.sqrt(8)
2.8284271247461903
Contoh dibawah ini, kita menggunakan SymPy :
>>> import sympy
>>> sympy.sqrt(8)
2*sqrt(2)
Kedua hasil diatas berbeda satu sama lain dan dibandingkan dengan hasil menggunakan
SymPy tentu ini merupakan hasil yang benar. Hal ini dikarenakan akar suatu bilangan yang
tidak sempurna bukan merupakan hasil bilangan desimal berhingga.
34
38. 7.1. CONTOH 35
7.1 CONTOH
Misalkan kita akan menampilkan suatu ekspresi matematika yaitu 푥 + 2푦. Kita perlu
mendefinisikan simbol 푥 dan 푦, cara ini berbeda dengan kebanyakan perangkat komputer
aljabar lainnya. Kita dapat lakukan seperti ini :
>>> from sympy import symbols
>>> x,y = symbols('x y')
>>> expr = 2*x+y
>>> expr
2*x + y
>>> expr +1
2*x + y + 1
Kita mencoba bermain simbol diatas dengan menambahkan suatu variabel atau kon-stanta,
berikut contohnya yaitu :
>>> expr + x
3*x + y
>>> expr + 2014
2*x + y + 2014
SymPy melakukan perhitungan secara otomatis ketika diberi suatu variabel dan kon-stanta.
Kita akan memberikan perintah yang sedikit rumit seperti ini :
>>> x*(expr)
x*(2*x + y)
7.2 PERHITUNGAN PANGKAT
SymPy dapat melakukan perhitungan pangkat, namun perlu didefinisikan variabel yaitu
sebagai berikut :
>>> from sympy import *
>>> x,t,z,nu = symbols('x t z nu')
Untuk menampillkan pretty printing, kita perlu menggunakan karakter yang didasarkan
pada Unicode, dengan perintah berikut :
>>> init_printing(use_unicode=True)
Misalkan kita akan mencari suatu turunan dari 푒푥 sin(푥)
>>> diff(sin(x)*exp(x),x)
x x
e sin(x) + e cos(x)
Kita menghitung nilai suatu integral ∫(푒푥 sin(푥) + 푒푥 cos(푥))푑푥 :
integrate(exp(x)*sin(x)+exp(x)*cos(x),x)
x
e sin(x)
1. Hitung ∫∞
−∞ sin(푥2)푑푥
39. 36 BAB 7. SYMPY
integrate(sin(x**2),(x,-oo,oo))
___ ___
2
2
Hasil perhitungan diatas adalah benar namun ketersedian font untuk bilangan 휋 tidak ter-sedia
sehingga hanya menampilkan font yang tersedia, sehingga hasilnya akan seperti ini
:
∫
∞
−∞
sin(푥2)푑푥 =
√2√휋
2
2. Hitung lim푥→0
sin(푥)
푥
limit(sin(x)/x,x,0)
1
3. Tentukan hasil dari 푥2 − 2 = 0
solve(x**2-2,x)
___ ___
- 2 , 2
Hasil perhitungan diatas adalah benar seperti ini hasilnya :
[−√2,√2]
4. Selesaikan persamaan diferensial 푦” − 푦 = 푒푡
y = Function('y')
dsolve(Eq(y(t).diff(t,t)-y(t),exp(t)),y(t))
-t t t
y(t) = C2e + C1 + e
2
5. Tentukan nilai eigen dari [
1 2
2 2 ]
Matrix([[1,2],[2,2]]).eigenvals()
____ ____
3 17 17 3
+ : 1, - + : 1
2 2 2 2
Hasil perhitungan diatas dapat diperjelas dengan hasil dibawah ini :
[
3
2
+
√17
2
∶ 1, 3
2
−
√17
2
∶ 1
]
6. Menampilkan ekspresi ∫휋
0 cos2(푥)푑푥
latex(Integral(cos(x)**2, (x, 0, pi)))
int_{0}^{pi} cos^{2}{left (x right )}, dx
7.3 OPERASI DASAR DI SYMPY
Kita akan mendiskusikan beberapa operasi paling dasar untuk melakukan manipulasi
ekspresi matematika di SymPy. Untuk menjalankan SymPy, gunakan perintah berikut :
from sympy import *
x,y,z = symbols(x y z)
40. 7.3. OPERASI DASAR DI SYMPY 37
Pergantian(Substitution)
Salah satu perintah yang paling dasar dalam mengekspresikan notasi dan perhitungan
matematika adalah pergantian di SymPy gunakan perintah subs. Berikut contohnya :
expr = cos(x) + 2015
expr.subs(x,y)
cos(y) + 2015
Kita dapat juga menggantikan dengan konstanta, misalkkan bilangan 0 :
expr.subs(x,0)
2016
Contoh lebih lanjut :
expr = x**y
expr
y
x
expr = expr.subs(y,x**y)
expr = expr. subs(y, x**x)
expr
x
x
x
x
Kita dapat juga melakukannya dengan fungsi trigonometri , seperti ini :
expr = sin(2*x)+cos(2*x)
expr
sin(2x) + cos(2x)
expand_trig(expr)
2
2sin(x)cos(x) + 2cos (x) - 1
expr.subs(sin(2*x), 2*sin(x)*cos(x))
2sin(x)cos(x) + cos(2x)
41. BAB
8 Pandas
Pandas adalah paket Python yang terbukti menampilkan struktur data cepat, fleksibel,
dan membuatnya bekerja dengan ”relasi” atau label data dengan mudah dan teliti. Untuk
memulai Pandas lakukan perintah berikut :
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
8.1 STRUKTUR DATA
Berikut beberapa perintah dalam struktur data di Pandas yaitu :
1. Series, digunakan untuk menampilkan daftar nilai.
s = pd.Series([1,3,5,np.nan,6,8])
2. DataFrame, digunakan untuk menampilkan array dalam NumPy beserta waktu dan
label kolom.
dates = pd.date_range('20130101',periods=6)
dates
class 'pandas.tseries.index.DatetimeIndex'
[2013-01-01, ..., 2013-01-06]
Length: 6, Freq: D, Timezone: None
df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD'))
df
A B C D
2013-01-01 0.341455 -0.292411 -0.139236 0.053031
2013-01-02 1.348547 1.477679 -0.227121 -0.043805
2013-01-03 -0.206443 0.276419 -0.150303 0.010537
2013-01-04 -2.266566 -1.269206 -1.631503 -1.002528
2013-01-05 -0.263194 0.429216 1.326718 -0.235965
2013-01-06 0.495670 0.942652 -0.408065 0.882906
df2 = pd.DataFrame({’A’ : 1.,’ B’: pd.Timestamp(’20130102’),’C’ : pd. Series (1, index=
list (range(4) ) , dtype=’ float 32’) ,’ D’ : np. array ([3] * 4,dtype=’ int 32’) ,’ E’: pd.
Categorical ([” test ”,” train ”,” test ”,” train ”]) ,’ F’ : ’foo ’})
38
42. 8.2. MELIHAT DATA 39
df2 = pd.DataFrame({'A' : 1.,'B': pd.Timestamp('20130102'),'C' : pd.Series(1,index=list(range(4)), df2
A B C D E F
0 1 2013-01-02 1 3 test foo
1 1 2013-01-02 1 3 train foo
2 1 2013-01-02 1 3 test foo
3 1 2013-01-02 1 3 train foo
3. dtypes, digunakan untuk menampilkan jenis data.
df2.dtypes
A float64
B datetime64[ns]
C float32
D int32
E category
F object
dtype: object
Jika kamu menggunakan IPython kamu dapat menampilkan semua data yang ada dengan
sekali perintah TAB seperti ini :
In [1] : df2TAB
Tabel 8.1
dtypes di Pandas
dtypes dtypes dtypes dtypes
df2.A df2.boxplot df2.abs df2.C
df2.add df2.clip df2.add_prefix df2. clip _lower
df2.add_suffix df2. clip _upper df2.align df2.columns df2.all
df2.combine df2.any df2.combineAdd df2.append
df2.combine_first df2.apply df2.combineMult df2.applymap
df2.compound df2.as_blocks df2.consolidate df2.asfreq
df2.convert_objects df2.as_matrix df2.copy df2.astype
df2.corr df2.at df2.corrwith df2.at_time
df2.count df2.axes df2.cov df2.B
df2.cummax df2.between_time df2.cummin df2.bfill
df2.cumprod df2.blocks df2.cumsum df2.bool
df2.D
Sumber: Pandas documentations ref Release 0.15.0, dengan perubahan seperlunya tertanggal 10 Desember 2014, jam 11:54
8.2 MELIHAT DATA
Pandas dapat juga digunakan untuk melihat data yang dibuat atau data acak seperti ini :
df.head()
A B C D
2013-01-01 0.341455 -0.292411 -0.139236 0.053031
2013-01-02 1.348547 1.477679 -0.227121 -0.043805
2013-01-03 -0.206443 0.276419 -0.150303 0.010537
2013-01-04 -2.266566 -1.269206 -1.631503 -1.002528
2013-01-05 -0.263194 0.429216 1.326718 -0.235965
df.tail(3)
A B C D
43. 40 BAB 8. PANDAS
2013-01-04 -2.266566 -1.269206 -1.631503 -1.002528
2013-01-05 -0.263194 0.429216 1.326718 -0.235965
2013-01-06 0.495670 0.942652 -0.408065 0.882906
df.index
class 'pandas.tseries.index.DatetimeIndex'
[2013-01-01, ..., 2013-01-06]
Length: 6, Freq: D, Timezone: None
df.columns
Index(['A', 'B', 'C', 'D'], dtype='object')
df.values
[[ 0.3414548 -0.29241141 -0.13923595 0.05303106]
[ 1.34854665 1.4776786 -0.22712117 -0.04380517]
[-0.20644258 0.27641875 -0.15030257 0.01053665]
[-2.26656555 -1.26920576 -1.63150339 -1.00252832]
[-0.26319439 0.42921565 1.32671789 -0.23596486]
[ 0.4956698 0.94265246 -0.40806521 0.88290584]]
df.describe()
A B C D
count 6.000000 6.000000 6.000000 6.000000
mean -0.091755 0.260725 -0.204918 -0.055971
std 1.214871 0.961383 0.941288 0.604369
min -2.266566 -1.269206 -1.631503 -1.002528
25% -0.249006 -0.150204 -0.362829 -0.187925
50% 0.067506 0.352817 -0.188712 -0.016634
75% 0.457116 0.814293 -0.142003 0.042407
max 1.348547 1.477679 1.326718 0.882906
df.T
2013-01-01 2013-01-02 2013-01-03 2013-01-04 2013-01-05 2013-01-06
A 0.341455 1.348547 -0.206443 -2.266566 -0.263194 0.495670
B -0.292411 1.477679 0.276419 -1.269206 0.429216 0.942652
C -0.139236 -0.227121 -0.150303 -1.631503 1.326718 -0.408065
D 0.053031 -0.043805 0.010537 -1.002528 -0.235965 0.882906
df.sort_index(axis=1, ascending=False)
D C B A
2013-01-01 0.053031 -0.139236 -0.292411 0.341455
2013-01-02 -0.043805 -0.227121 1.477679 1.348547
2013-01-03 0.010537 -0.150303 0.276419 -0.206443
2013-01-04 -1.002528 -1.631503 -1.269206 -2.266566
2013-01-05 -0.235965 1.326718 0.429216 -0.263194
2013-01-06 0.882906 -0.408065 0.942652 0.495670
df.sort(columns='B')
A B C D
2013-01-04 -2.266566 -1.269206 -1.631503 -1.002528
2013-01-01 0.341455 -0.292411 -0.139236 0.053031
2013-01-03 -0.206443 0.276419 -0.150303 0.010537
2013-01-05 -0.263194 0.429216 1.326718 -0.235965
2013-01-06 0.495670 0.942652 -0.408065 0.882906
2013-01-02 1.348547 1.477679 -0.227121 -0.043805
8.3 MENYELEKSI DATA
Panda menyeleksi data yang diberikan, berikut contohnya yaitu :
df['A']
2013-01-01 0.341455
2013-01-02 1.348547
2013-01-03 -0.206443
44. 8.3. MENYELEKSI DATA 41
2013-01-04 -2.266566
2013-01-05 -0.263194
2013-01-06 0.495670
Freq: D, Name: A, dtype: float64
df[0:3]
A B C D
2013-01-01 0.341455 -0.292411 -0.139236 0.053031
2013-01-02 1.348547 1.477679 -0.227121 -0.043805
2013-01-03 -0.206443 0.276419 -0.150303 0.010537
df['20130102':'20130104']
A B C D
2013-01-02 1.348547 1.477679 -0.227121 -0.043805
2013-01-03 -0.206443 0.276419 -0.150303 0.010537
2013-01-04 -2.266566 -1.269206 -1.631503 -1.002528
df.loc[dates[0]]
A 0.341455
B -0.292411
C -0.139236
D 0.053031
Name: 2013-01-01 00:00:00, dtype: float64
df.loc[:,['A','B']]
A B
2013-01-01 0.341455 -0.292411
2013-01-02 1.348547 1.477679
2013-01-03 -0.206443 0.276419
2013-01-04 -2.266566 -1.269206
2013-01-05 -0.263194 0.429216
2013-01-06 0.495670 0.942652
df.loc['20130102':'20130104',['A','B']]
A B
2013-01-02 1.348547 1.477679
2013-01-03 -0.206443 0.276419
2013-01-04 -2.266566 -1.269206
df.loc['20130102',['A','B']]
A 1.348547
B 1.477679
Name: 2013-01-02 00:00:00, dtype: float64
df.loc[dates[0],'A']
0.341454802503
df.at[dates[0],'A']
0.341454802503