() translation by (you can also view the original English article)
Mari saya mulai dengan menunjukkanmu grafik di bawah ini:



Itu tampak familiar bukan? Ini disebut grafik batang. Kita normalnya menggambar mereka menggunakan aplikasi yang berbeda seperti Microsoft Excel dan Microsoft Word.
Jika kita ingin memiliki lebih banyak kendali terhadap proses pembuatan grafis, membuat grafik tersebut secara pemrograman akan menjadi pilihan terbaik.
Dalam tutorial ini saya akan menunjukkan bagaimana kita dapat membuat grafik batang menggunakan Python. Siap?
Modul Apa Yang Kita Butuhkan?
Untuk melaksanakan tugas menggambar grafik batang, kita akan memerlukan dua modules: module Image dan module ImageDraw, keduanya akan diiimport dari Python Imaging Library (PIL). Module Image
akan digunakan untuk memuat sebuah gambar, sementara module ImageDraw
akan digunakan untuk membuat grafik 2D (yaitu menggambar sebuah garis).
Menyebutkan PIL, mari saya tunjukkan bagaimana kita dapat menginstalnya. Namun saya akan menunjukkan bagaimana menginstal Pillow sebagai gantinya. Alasannya adalah kebanyakan versi terkini PIL, PIL 1.1.7, dirilis di tahun 2009 dan hanya mendukung Python 1.5.2–2.7. Dengan demikian itu tidak memiliki dukungan untuk Python 3.X, dan saya takut pengembangannya telah terhenti dimana komitmen terakhir untuk project PIL berada di tahun 2011.
Pillow hadir di sini dimana itu mengambil repositori PIL dan menambahkan dukungan Python 3.X. Jadi saya akan menggunakan Pillow demi pembaca yang menggunakan Python 3.X. Namun tidak masalah untuk berkerja dengan Pillow jika kamu menggunakan versi Python sebelumnya.
Menginstal Pillow
Tahapan yang disebutkan dalam section ini tentang menginstal Pillow adalah untuk pengguna Mac OS X, karena saya saat ini menulis tutorial ini pada sistem Mac OS X El Capitan, namun kamu dapat mengikuti instruksi di dalam dokumentasi untuk sistem operasi lainnya.
Sebuah cara yang mudah untuk menginstal Pillow pada Mac adalah melalui pip, yang dapat diinstal dengan mengetikkan perintah sederhana berikut di dalam terminal:
1 |
$ sudo easy_install pip |
Pillow dapat diinstal hanya dengan mengetikkan:
1 |
$ sudo pip install pillow |
Membangun Program
Sekarang mari melalui building block program tahap demi tahap. Hal pertama yang kita butuhkan adalah sebuah gambar kosong tempat kita akan menggambar grafik batang. Kamu dapat mendownload gambar kosong.
Sekarang mari membaca gambar kosong ini dan menggambarnya. Kita dapat melakukan ini sebagai berikut:
1 |
from PIL import Image, ImageDraw |
2 |
img = Image.open('blank.png') |
3 |
draw_img = ImageDraw.Draw(img) |
Karena kita akan menggambar sebuah grafik batang, kita memerlukan beberapa data. Untuk ini, kita dapat menggunakan daftar. Dengan demikian, data (daftar) kita dapat tampak sebagai berikut:
1 |
data = ['4','5','87','1','44','83','93','2','54','84','100','64'] |
Pada titik ini, yang kita perlukan adalah menggambar grafik batang. Kita akan memperlakukan batang yang kita lihat di dalam grafik sebagai garis. Jadi kita akan menggunakan method line()
pada module ImageDraw
.
Saya akan menunjukkan code yang akan melakukan tugas menggambar sebuah grafis batang, dan saya akan menjelaskan setelah itu:
1 |
for i in data: |
2 |
x = x + 30 |
3 |
y = 200 - int(i) |
4 |
draw_img.line((x,200,x,y), width=10, fill=(255,0,0,255)) |
Seperti yang dapat kamu lihat, kita melakukan loop melalui daftar dan menggambar sebuah grafik batang menggunakan data di dalam daftar. x = x + 30
menyediakan kita dengan ruang yang diperlukan di antara tiap titik data di dalam daftar pada sumbu x. Sebelum saya melanjutkan, saya ingin mengingatkan bahwa titik (0,0)
pada gambar berada pada kiri atas sumbu. Jadi itu akan seperti menggambar garis dari atas ke bawah pada cara normal yang biasa kita gunakan saat menandai koordinat pada sebuah grafik.
Jika kita melompat pada garis akhir pada porsi script sebelumnya, kita dapat membaca bagian draw_img.line((x,200, x,y))
sebagai berikut: gambarkan sebuah garis dari titik (x,200)
pada titik (x,y)
. Jadi, jika kita mulai dengan titik data pertama 4
, garisnya akan digambar dari (34,200)
hingga (34,196)
. Dengan demikian, ketika saya menunjukkan output, sumbu x akan tampak seperti yang biasa kita lihat (dimulai dari kiri bawah untuk titik (0,0)
. Trik di sini adalah menggunakan y = 200
. Seperti yang akan kamu lihat, kita akan selalu memiliki sebuah garis yang digambar dimana y = 200
untuk semua titik data, dan ini akan memberikan kita kesan cara yang biasa kita lakukan untuk menggambar titik data pada grafik ketika melihat hasil.
width
mewakili lebar (ketebalan) garis, dan fill=(255,0,0,255)
mewakili warna garis. Yaitu, warna RBGA
(sebuah ekstensi warna RGB dengan sebuah channel Alpha yang mewakili opacity).
Terakhir, kita dapat melihat gambar menggunakan pernyataan: img.show()
.
Meletakkan Semuanya Bersama-sama
Sekarang setelah kita meliput building block program kita, mari letakkan semuanya bersama-sama dan lihat bagaimana tampilan script kita:
1 |
from PIL import Image, ImageDraw |
2 |
img = Image.open('blank.png') |
3 |
draw_img = ImageDraw.Draw(img) |
4 |
|
5 |
data = ['4','5','87','1','44','83','93','2','54','84','100','64'] |
6 |
x = 0 |
7 |
|
8 |
for i in data: |
9 |
x = x + 30 |
10 |
y = 200 - int(i) |
11 |
draw_img.line((x,200,x,y), width=10, fill=(255,0,0,255)) |
12 |
|
13 |
img.show() |
Output
Sekarang adalah bagian menariknya, hasil dari script di atas. Jika kamu menjalankan program, kamu harusnya mendapatkan sesuatu yang serupa dengan di bawah:



Saya telah melakukan crop pada bagian atas gambar di dalam snapshot ini; itu harusnya tampak lebih besar pada output aslinya.
Kesimpulan
Seperti yang kita lihat dari tutorial ini, untuk memperoleh lebih banyak kontrol terhadap tugas seperti menggambar grafik untuk beberapa data, dengan menggunakan sebuah bahasa pemrograman (yaitu Python) akan menjadi caranya.
Bagaimana pun juga, kita tidak selalu perlu melakukan tugas seperti itu dari awal; kita dapat memanfaatkan librari user-defined seperti Pillow di dalam tutorial kita. Dengan menggunakan librari seperti itu membuatnya mudah untuk menggambar grafik batang, dan dengan menggunakan Python memberikan kita kendali dan fleksibilitas dalam penggunaan beberapa trik untuk menghasilkan output grafik dalam cara yang kita inginkan.