Gnuplot dan Visualisasi Data

gnuplot-0Sebagai pelajar ataupun peneliti, kita dihadapkan pada beragam pilihan perangkat lunak pembuat grafik, kurva, histogram, serta bentuk-bentuk gambar lainnya yang diperlukan dalam menyajikan data hasil penelitian ataupun untuk menggambar suatu fungsi matematis tertentu. Perangkat visualisasi yang kita gunakan sering kali ditentukan berdasarkan kemudahan mengoperasikannya, hasil keluaran (output) gambar yang cocok dengan format makalah atau format suatu jurnal tertentu, serta harganya, apakah mahal, murah, atau justru gratis.

Beberapa perangkat visualisasi yang cukup populer karena kemampuan dan kemudahan penggunaannya dalam pembuatan bermacam-macam grafik di antaranya adalah Microsoft Excel, OriginPro, dan Igor Pro. Sayangnya, semua perangkat ini bersifat komersial (berbayar) dengan harga yang cukup mahal untuk kantong pelajar dan peneliti di Indonesia. Memang, ada beberapa versi “tiruan” yang gratis dari perangkat yang disebutkan di atas, seperti LibreOffice Calc (mirip Microsoft Excel) dan QtiPlot/SciDAVis (mirip OriginPro dan Igor Pro). Namun, bisa jadi kita tidak puas jika sekadar menggunakan “software KW1” meskipun sebenarnya perangkat-perangkat tersebut punya kemampuan yang cukup baik.

Ada satu kesamaan karakteristik dari Excel, Origin, Igor, serta varian perangkat lunak yang serupa. Perangkat-perangkat ini pada dasarnya menggunakan antarmuka grafis untuk menampilkan gambar yang sedang kita buat. Dengan demikian, ketika menggunakan perangkat-perangkat tersebut, kita bisa langsung melihat hasil akhir gambar yang kira-kira akan terbentuk dari proses pengolahan data yang kita lakukan. Pada tutorial ini, kita tidak akan membahas perangkat visualisasi yang menggunakan antarmuka grafis, tetapi kita coba ulas jenis perangkat visualisasi yang menggunakan antarmuka teks, yaitu Gnuplot.

Dengan menggunakan antarmuka teks, Gnuplot memiliki keunggulan dalam hal kecepatan pengolahan gambar dibandingkan perangkat sejenis yang menggunakan antarmuka grafis. Dalam Gnuplot, kita cukup mengetik beberapa baris kode, yang selanjutnya diterjemahkan oleh Gnuplot menjadi suatu bentuk grafik. Selain itu, Gnuplot juga merupakan salah satu perangkat visualisasi gratis (tak berbayar) yang memiliki kemampuan terlengkap untuk menggambar segala macam grafik yang bisa kita bayangkan, seperti plot 2D, 3D, plot permukaan, peta, beragam fungsi matematis, fitting kurva, hingga animasi yang menarik.

Untuk keperluan penyajian data penelitian sehari-hari, kita hanya perlu mengetahui beberapa kode dasar Gnuplot. Oleh karenanya, fokus pembahasan pada tutorial ini dibatasi pada bagaimana menghasilkan grafik dari suatu data 2D (yang memiliki sumbu-x, sumbu-y, serta error bar) dan bagaimana menggambar fungsi matematis sederhana. Kemampuan Gnuplot lebih lanjut dapat dieksplorasi sendiri dari buku manualnya setelah memahami dasar-dasar yang diberikan pada tutorial ini. Selain itu, di sini kita sedikit membahas cara menghasilkan format keluaran (output) gambar yang berbeda-beda, seperti EPS (encapsulated postscript) dan SVG (scalable vector graphics) yang merupakan tipe gambar vektor, serta PNG (portable network graphics) yang merupakan tipe gambar bitmap.

Format EPS paling sering dipakai dalam pembuatan dokumen dengan LaTeX, yang biasanya menjadi standar penulisan makalah di banyak jurnal. Format PNG biasanya digunakan pada pengolah dokumen yang bersifat WYSIWIG (what you see is what you get) seperti Microsoft Word, maupun digunakan pada penulisan website. Format SVG secara khusus merupakan format gambar berkualitas tinggi yang paling fleksibel karena dapat diubah menjadi format gambar yang lain (PNG, JPG, EPS, bahkan PDF) dengan menggunakan perangkat pengolah gambar SVG (seperti Inkscape, Adobe Illustrator, atau Corel Draw).

Instalasi Gnuplot

Langkah pertama yang perlu dilakukan sebelum menggunakan Gnuplot tentunya adalah melakukan instalasi perangkat ini di komputer kita. Bagi pengguna Windows, versi terkini Gnuplot yang sudah dianggap versi stabil (bukan versi pengembangan) adalah Gnuplot 4.6.3. Versi tersebut dapat diunduh dari laman:
http://sourceforge.net/projects/gnuplot/files/gnuplot/4.6.3/
Bagi pengguna Linux, bergantung pada distribusi Linux yang digunakan, kita bisa instalasi Gnuplot versi terbaru langsung dari terminal. Misalnya, dengan perintah semacam berikut ini untuk distribusi berbasis Ubuntu/Debian:

$ sudo apt-get install gnuplot

Selain Gnuplot (Gambar 1), kita juga perlu pastikan Ghostscript (http://www.ghostscript.com/download/) dan Gsview (http://www.ghostscript.com/GSview.html) terinstalasi di dalam komputer kita untuk membuka berkas-berkas berformat EPS. Jika belum ada, kita perlu instalasi dulu kedua perangkat ini, terutama untuk Windows yang tidak memiliki Ghostscript dan pembuka berkas EPS dari awal. Untuk format SVG dan PNG, biasanya setiap sistem operasi sudah punya perangkat bawaan yang dapat membuka kedua format tersebut.

Gambar 1: Gnuplot pada Windows.
Gambar 1: Gnuplot pada Windows.

Ghostscript dengan command prompt di Windows atau terminal di Linux dapat digunakan untuk mengubah format EPS menjadi PDF (portable digital format) maupun sebaliknya. Satu lagi perangkat tambahan yang dapat membantu penanganan beragam format gambar keluaran Gnuplot adalah Inkscape, yang juga bersifat gratis (http://www.inkscape.org/). Inkscape pada dasarnya merupakan pengolah format SVG sehingga bisa digunakan untuk memodifikasi gambar SVG yang telah dihasilkan oleh Gnuplot. Inkscape pun mampu mengubah satu format gambar (vector ataupun bitmap) dengan menyimpannya menjadi format gambar yang lain.

Penggunaan Dasar Gnuplot

Dalam sebuah sesi Gnuplot, biasanya kita perlu persiapkan tiga perangkat sekaligus. Selain Gnuplot dan perangkat pembuka tipe gambar tertentu (EPSviewer, Picture Manager, dll), kita akan sangat membutuhkan editor teks semacam Notepad yang digunakan untuk mengetikkan kode-kode Gnuplot. Sebagai contoh pertama dalam tutorial ini, mari kita buat grafik dari sebuah data 2D. Format data 2D yang dapat diterima Gnuplot adalah format teks biasa, seperti *.csv atau *.dat. Dalam tutorial ini kita akan selalu menyimpan data dalam format *.dat.

Kita dapat membuat sembarang data 2D bertipe *.dat, baik itu dari hasil penelitian, atau sekadar data sederhana yang mengandung sumbu-x dan sumbu-y seperti ini:

# data1.dat
# X  Y
  1  5
  2  3
  3  2
  4  4

Setiap baris teks yang diawali oleh tanda # berfungsi sebagai “komentar” dan tidak diolah secara langsung oleh Gnuplot. Perhatikan pada contoh data ini kolom X dan Y dapat dipisahkan oleh suatu “tab”, “spasi”, ataupun “koma”. Gnuplot akan menganggap setiap separasi tersebut sebagai tanda untuk kolom-kolom yang berbeda.

Jika kita sudah punya suatu berkas data 2D, kita dapat memulai menggambar grafiknya menggunakan Gnuplot. Misalkan data tersebut kita simpan dengan nama ‘data1.dat’ pada folder ‘E:\gnuplot’, kita dapat buka perangkat gnuplot di Windows, dan mulai memberikan instruksi pada gnuplot. Untuk menuju ke folder tempat data yang ingin kita gambar berada, gunakan perintah cd (change directory) pada terminal gnuplot:

gnuplot> cd ‘E:\gnuplot’

Tanda petik pada terminal Gnuplot di atas boleh menggunakan petik tunggal ataupun petik ganda.

Kita kemudian bayangkan data 2D yang sudah kita definisikan akan digambar sebagai titik-titik data yang dihubungkan oleh suatu garis. Untuk menghasilkan gambar tersebut, kita perlu “memberi tahu” Gnuplot terkait definisi style yang ingin digunakan. Bentuk kode dasarnya adalah:

set style line <index> lt <linetype> lc <linecolor> lw <linewidth> pt <pointtype> ps <pointsize>

Sebagai contoh, pada terminal gnuplot dapat kita masukkan:

gnuplot> set style line 1 lt 1 lc 3 lw 2 pt 7 ps 2

Dalam kode ini, <index> = 1 merupakan penanda bahwa style yang didefinisikan pada contoh ini diberi nomor 1 untuk dirujuk pada perintah-perintah Gnuplot berikutnya. Pemberian nilai <index> kelak sangat berguna jika kita memiliki beragam data yang ingin kita plot dalam satu gambar yang sama namun dengan style yang berbeda. Setiap spesifikasi <linetype>, <linecolor>, dst, yang dinyatakan setelah <index> akan selalu terkait dengan nomor indeks tersebut. Pada contoh ini, spesifikasi nilai <linetype> = 1 merupakan definisi garis lurus, kemudian <linecolor> = 3 adalah warna biru untuk garis tersebut, <linewidth> = 2 adalah ketebalan garis sebesar 2 titik, <pointtype> = 7 mendefinisikan titik data yang digambarkan berupa bulatan, dan <pointsize> = 2 merupakan ketebalan bulatan sebesar 2 titik.

Kita dapat memberikan nilai yang lain untuk setiap definisi <linetype>, <linecolor> dan <pointtype> sesuai dengan tampilan yang kita inginkan. Gambar 2 menunjukkan rangkuman beberapa bentuk garis, titik data, dan warna yang dapat dipilih pada Gnuplot. Khusus untuk pilihan warna, kita dapat mendefinisikan warna sendiri yang lebih banyak pilihannya daripada yang tersedia pada Gambar 2. Caranya adalah dengan menggunakan kode HTML untuk warna dalam format RGB. Misalnya, pada contoh yang telah kita berikan nilai <linecolor> = 3 dapat diganti dengan <linecolor> = rgb ‘#0060ad’:

gnuplot> set style line 1 lt 1 lc rgb ‘#0060ad’ lw 2 pt 7 ps 2
Gambar 2: Angka yang dapat dipilih untuk bentuk garis, titik data, dan warna tertentu pada Gnuplot.
Gambar 2: Angka yang dapat dipilih untuk bentuk garis, titik data, dan warna tertentu pada Gnuplot.

Setelah mendefinisikan penampilan data dalam bentuk garis dan bentuk titik tertentu, kita sekarang dapat langsung menggambar data 2D dengan perintah plot:

gnuplot> plot ‘data1.dat’ with linespoints ls 1

Perhatikan bahwa <linestyle> = 1 merupakan jenis style yang sudah didefinisikan sebelumnya. Spesifikasi ‘with linespoints’ merupakan perintah kepada Gnuplot agar menggambar data dengan menghubungkannya menggunakan garis sekaligus setiap koordinat diberikan titik data dengan bentuk yang sudah ditentukan. Jika kita ingin data digambar dengan garis saja, kita bisa gunakan spesifikasi ‘with lines’. Atau, untuk data yang digambar dengan titik-titik saja, kita gunakan ‘with points’.

Dengan mengombinasikan semua informasi dasar ini dalam sebuah sesi Gnuplot, kita dapat memperoleh tampilan seperti pada Gambar 3.

Gambar 3: Kombinasi penggunaan beberapa kode dasar Gnuplot beserta hasilnya.
Gambar 3: Kombinasi penggunaan beberapa kode dasar Gnuplot beserta hasilnya.

Untuk menyimpan hasil plot dalam sebuah berkas bertipe EPS, SVG, ataupun PNG, kita perlu mendefinisikan format keluaran gambar di dalam gnuplot, yaitu definisi tipe gambar dan nama gambar keluaran. Definisi keluaran ini sebaiknya dimasukkan di awal sebelum memulai definisi style dari gambar yang ingin dibuat. Berdasarkan tipe gambar yang ingin dihasilkan, maka kode yang dibutuhkan pun sedikit berbeda, seperti berikut ini:

  • PNG:
    set terminal pngcairo size 400,300 enhanced font ‘Verdana,10’
    set output ‘plotdata1.png’
  • SVG:
    set terminal svg size 400,300 enhanced fname ‘Verdana’ fsize 10
    set output ‘plotdata1.svg’
  • EPS:
    set terminal postscript eps size 4,3 enhanced color font ‘Helvetica,20’ linewidth 2
    set output ‘plotdata1.eps’

Perhatikan pada definisi keluaran PNG dan SVG nilai 400,300 merupakan ukuran gambar yang ingin ditampilkan dalam satuan pixels, sedangkan pada tipe gambar EPS ukurannya cukup diberikan dalam perbandingan panjang dan lebar sebesar 4:3. Dalam mendefinisikan format keluaran ini kita juga dapat memberikan jenis huruf tertentu beserta ukuran hurufnya.

Perlu dicatat bahwa khusus untuk tipe EPS, ukuran yang dihasilkan pada keluaran akhir adalah setengah dari ukuran yang kita bayangkan. Misalnya, jika kita membayangkan ingin menghasilkan huruf sebesar 10, dalam definisi ini kita perlu beri nilai 20. Demikian pula untuk ketebalan garis, titik data, dan yang serupa dengan itu, nilainya perlu dikalikan 2. Kode yang dapat mempersingkat kebutuhan ini adalah kode linewidth 2 yang ditulis setelah definisi ukuran huruf. Kita bisa coba-coba sendiri ukuran yang kita kehendaki ketika menggunakan keluaran EPS dan disesuaikan dengan selera artistik yang diinginkan.

Sekarang, alih-alih mengetikkan setiap kode Gnuplot satu per satu pada terminal Gnuplot seperti yang dilakukan sebelumnya pada Gambar 3, kita bisa mempersingkat proses menggambar grafik dengan memasukkan semua kode Gnuplot yang dibutuhkan pada sebuah teks yang disimpan dalam format *.plt, *.gp, atau *.gnu, kemudian membukanya belakangan dari terminal Gnuplot. Ada tiga langkah mendasar yang perlu dilakukan:

  1. Buka editor teks seperti Notepad untuk membuat sebuah berkas baru. Untuk contoh grafik yang telah diberikan, kita dapat masukkan kode berikut ke dalam editor teks dan menyimpannya sebagai ‘plotdata1.plt’:
    # plotdata1.plt
    reset
    set terminal svg size 400,300 enhaced fname ‘Verdana’ fsize 10
    set output ‘plotdata1.svg’
    set style line 1 lt 1 lc 3 lw 2 pt 7 ps 2
    plot ‘data1.dat’ with linespoints ls 1
    unset output

    Berkas ‘plotdata1.plt’ ini disimpan pada folder yang sama dengan ‘data1.dat’. Keluarannya juga (pada contoh ini adalah tipe gambar SVG: ‘plotdata1.svg’) kemudian akan diperoleh pada folder yang sama.

  2. Dari terminal Gnuplot, masukkan perintah load untuk kode Gnuplot yang telah disimpan. Asumsikan kita menyimpannya di dalam folder ‘E:\gnuplot’:
    gnuplot> cd ‘E:\gnuplot’
    gnuplot> load ‘plotdata1.plt’
  3. Jika tidak ada pesan error, gambar yang diinginkan sudah dapat dilihat seperti pada Gambar 4.
Gambar 4: Grafik ‘plotdata1.svg’ keluaran Gnuplot yang ditampilkan pada Mozilla Firefox.
Gambar 4: Grafik ‘plotdata1.svg’ keluaran Gnuplot yang ditampilkan pada Mozilla Firefox.

Modifikasi dan Ekspor Gambar dengan Inkscape

Perintah unset output di pada akhir kode ‘plotdata1.plt’ berguna untuk membersihkan variabel data keluaran dalam format SVG agar gambar bisa langsung dibuka oleh perangkat pengolah SVG seperti Inkscape tanpa menimbulkan konflik dengan Gnuplot. Penggunaan Inkscape sangat bermanfaat untuk memodifikasi lebih lanjut gambar yang telah dihasilkan Gnuplot jika kita masih tidak puas dengan kualitas gambar keluaran Gnuplot. Modifikasi yang dimaksud di sini jangan sampai mengubah data hasil penelitian, yakni sekadar mengubah warna, ukuran huruf, dan hal-hal terkait penampilan gambar secara artistik.

Setelah selesai urusan memperbaiki gambar, Inkscape dapat menangani ekspor gambar ke dalam berbagai format. Untuk tipe gambar bitmap, kita bisa pilih File à Export Bitmap, lalu tulis nama dan tipe keluaran yang diinginkan (PNG, JPG, BMP, dll). Untuk ekspor ke tipe PDF atau EPS, kita perlu memilih File à Save a Copy, lalu dari panel yang muncul kita pilih “Save as Type” sesuai format gambar yang diinginkan.

Sebagai contoh, seperti ditunjukkan pada Gambar 5, kita dapat mengubah penampilan ‘plotdata1.svg’ pada Inkscape dengan menambah atau menghapus teks, mengganti warna, memperkecil ataupun memperbesar elemen gambar. Setelah itu, kita dapat menyimpan gambar ke dalam format keluaran yang kita inginkan.

Gambar 5: Permak grafik ‘plotdata1.svg’ dengan menggunakan Inkscape.
Gambar 5: Permak grafik ‘plotdata1.svg’ dengan menggunakan Inkscape.

Meski sedikit merepotkan, tanpa Inkscape, kita bisa juga menyuruh Gnuplot menghasilkan keluaran PNG, SVG, dan EPS sekaligus dengan menambahkan beberapa baris kode lagi:

# ...
# lanjutan plotdata1.plt
set terminal pngcairo size 400,300 enhanced font ‘Verdana,10’
set output ‘plotdata1.png’
replot
unset output
set terminal postscript eps size 4,3 enhanced color font ‘Helvetica,20’ linewidth 2
set output ‘plotdata1.eps’
replot
unset output

Variasi Bentuk Data 2D

Pada contoh pertama yang telah dijelaskan, kita hanya menggambar grafik dari sebuah data 2D yang mengandung satu himpunan nilai x dan satu himpunan nilai y. Selain bentuk data semacam itu, Gnuplot dapat mengenali secara otomatis jika antara suatu himpunan data tertentu dan himpunan data lainnya dipisahkan oleh sebuah baris kosong.

Untuk contoh kasus ini, kita modifikasi ‘data1.dat’ dengan menekan tombol ‘Enter’ setelah baris data kedua sehingga baris tersebut terpisah dari baris data ketiga.

# data2.dat
# X  Y
1  5
2  3

3  2
4  4

Kita simpan data baru ini dengan nama ‘data2.dat’. Selanjutnya, kita ubah juga ‘plotdata1.plt’ dengan mengganti ekspresi ‘data1.dat’ menjadi ‘data2.dat’, ‘plotdata1.svg’ menjadi ‘plotdata2.svg’, dan teks kode ini disimpan dengan nama ‘plotdata2.plt’.

# plotdata2.plt
reset
set terminal svg size 400,300 enhaced fname ‘Verdana’ fsize 10
set output ‘plotdata2.svg’
set style line 1 lt 1 lc 3 lw 2 pt 7 ps 2
plot ‘data2.dat’ with linespoints ls 1
unset output

Eksekusi ‘plotdata2.plt’ dari terminal gnuplot:

gnuplot> cd ‘E:\gnuplot’
gnuplot> load ‘plotdata2.plt’

Hasilnya seperti seperti ditunjukkan pada Gambar 6. Perhatikan bahwa sekarang ada titik-titik data yang tidak terhubungkan oleh garis karena titik-titik data tersebut dianggap sebagai bagian dari blok data yang berbeda.

Gambar 6: Keluaran dari ‘plotdata2.plt’, yaitu ‘plotdata2.svg’.
Gambar 6: Keluaran dari ‘plotdata2.plt’, yaitu ‘plotdata2.svg’.

Jika kita ingin memberi warna yang berbeda untuk dua blok data ini, kita dapat mengubah bentuk ‘data2.dat’ lebih jauh lagi. Kali ini antara blok data pertama dan blok data kedua di dalam ‘data2.dat’ kita pisahkan dengan dua baris dan kita beri nomor indeks (index) tertentu. Nama berkas ini pun kita ganti menjadi ‘data3.dat’.

# data3.dat
# Blok pertama (index 0)
1  5
2  3

# Blok kedua    (index 1)
3  2
4  4

Teks ‘plotdata2.plt’ kemudian dimodifikasi menjadi ‘plotdata3.plt’ dengan menambahkan style untuk data yang berbeda. Kita dapat merujuk pada Gambar 2 untuk memilih warna, tipe garis, dan tipe titik data yang dapat dipilih. Pada contoh ini, kita ingin memberi bentuk kotak (<pointtype> = 5) untuk koordinat data pada blok kedua, serta warna merah (<linecolor> = 1) pada garis dan koordinat data. Baris kode yang perlu ditambahkan adalah:

set style line 2 lt 1 lc 1 lw 1 pt 5 ps 2

Perintah plot pun perlu dimodifikasi sesuai blok data yang hendak digambar:

plot ‘data3.dat’ index 0 with linespoints ls 1,\
     ‘data3.dat’ index 1 with linespoints ls 2

Perhatikan bagaimana posisi index diatur sesuai dengan definisi style yang diinginkan. Implementasi lengkapnya dapat dilihat pada ‘plotdata3.plt’.

# plotdata3.plt
reset
set terminal svg size 400,300 enhanced fname ‘Verdana’ fsize 10
set output ‘plotdata3.svg’
set style line 1 lt 1 lc 3 lw 2 pt 7 ps 2
set style line 2 lt 1 lc 1 lw 1 pt 5 ps 2
plot ‘data3.dat’ index 0 with linespoints ls 1, \
     ‘data3.dat’ index 1 with linespoints ls 2
unset output

Eksekusi ‘plotdata3.plt’ ini pada terminal Gnuplot:

gnuplot> cd ‘E:\gnuplot’
gnuplot> load ‘plotdata3.plt’

Hasilnya dapat dilihat pada Gambar 7.

Gambar 7: Keluaran dari ‘plotdata3.plt’, yaitu ‘plotdata3.svg’.
Gambar 7: Keluaran dari ‘plotdata3.plt’, yaitu ‘plotdata3.svg’.

Penataan Sumbu, Legenda, dan Judul dari suatu Grafik

Sampai sejauh ini, kita masih belum memanfaatkan kemampuan Gnuplot dalam menspesifikasi pengaturan sumbu, legenda, ataupun judul grafik. Pada dasarnya, label sumbu dan judul grafik tidak akan diberikan jika kita tidak spesifikasi, sedangkan label legenda langsung diberikan sesuai dengan nama data yang ada. Kita dapat mengatur elemen-elemen tersebut sesuai keinginan dengan beberapa kode tambahan.

Kita bisa ambil contoh dari ‘plotdata3.plt’. Misalkan sekarang kita ingin data yang divisualisasikan diberi label sumbu-x sebagai ‘Waktu (bulan)’ dan sumbu-y sebagai ‘Pemasukan (juta rupiah)’. Kemudian, data dengan index 0 diberi label ‘Fulan’, sedangkan data dengan index 1 diberi label ‘Fulanah’. Judul grafiknya sendiri adalah ‘Keuangan Fulan versus Fulanah’ Berdasarkan kebutuhan tersebut, kode-kode yang perlu dieksekusi ditunjukkan pada teks ‘plotdata3-rev.plt’.

# plotdata3-rev.plt
reset
set terminal svg size 400,300 enhanced fname ‘Verdana’ fsize 10
set output ‘plotdata3-rev.svg’
set style line 1 lt 1 lc 3 lw 2 pt 7 ps 2
set style line 2 lt 1 lc 1 lw 1 pt 5 ps 2
set xlabel ‘Waktu (bulan)’
set ylabel ‘Pemasukan (juta rupiah)’
set title  ‘Keuangan Fulan versus Fulanah’
plot ‘data3.dat’ index 0 title ‘Fulan’    with linespoints ls 1, \
      ‘data3.dat’ index 1 title ‘Fulanah’ with linespoints ls 2
unset output

Seperti biasa, kode ini dieksekusi pada terminal Gnuplot:

gnuplot> cd ‘E:\gnuplot’
gnuplot> load ‘plotdata3-rev.plt’

Hasilnya ditunjukkan pada Gambar 8.

Gambar 8: Keluaran dari ‘plotdata3-rev.plt’. Label sumbu, judul, dan legenda telah ditambahkan pada grafik.
Gambar 8: Keluaran dari ‘plotdata3-rev.plt’. Label sumbu, judul, dan legenda telah ditambahkan pada grafik.

Andaikata kita tidak ingin memberi label legenda (yang secara default muncul pada grafik), kita dapat meminta Gnuplot untuk menghilangkan label legenda tersebut dengan menyelipkan perintah unset key pada teks kode sebelum perintah plot. Di samping itu, jika kita masih tidak puas dengan hasil keluaran gambar dari Gnuplot, kita selalu dapat memperbaikinya dengan Inkscape.

Visualisasi Data dengan Error Bar, Fitting, dan Fungsi Matematis

Untuk contoh terakhir yang diberikan dalam tutorial ini, kita akan melihat bagaimana Gnuplot dapat memvisualisasikan data yang mengandung error bar, sekaligus melakukan fitting dan menggambarkan fungsi matematis tertentu pada sebuah grafik. Kita ambil contoh data peluruhan Ag-108 dari dokumentasi Gnuplot: https://github.com/gnuplot/gnuplot/blob/master/demo/silver.dat

#
# $Id: silver.dat,v 1.1 1998/04/15 19:16:42 lhecking Exp $
#
10.000000   280.000000   16.733201 
20.000000   191.000000   13.820275 
# [dst... data lengkapnya dipotong]
590.000000    9.000000    3.000000
600.000000    5.000000    2.236068

Struktur data ‘silver.dat’ ini terdiri dari data waktu pada kolom pertama, laju peluruhan pada kolom kedua, serta ketidakpastian laju peluruhan (error bar) pada kolom ketiga. Kita inginkan keluaran gambar mengandung 3 macam kurva, yaitu data eksperimen, interpolasi polinom dengan algoritma tetentu, dan sebuah fungsi matematis yang menggambarkan tren data eksperimen secara kasar. Mari kita langsung bahas kode yang perlu dieksekusi, yaitu ‘plotsilver.plt’.

# plotsilver.plt
reset
set terminal svg size 400,300 enhanced fname ‘Verdana’ fsize 10
set output ‘plotsilver.svg’
set style line 1 lt 1 lc rgb ‘blue’  lw 1.5 pt 7 ps 0.5
set style line 2 lt 1 lc rgb ‘red’   lw 1.5
set style line 3 lt 5 lc rgb ‘green’ lw 1.5
set xlabel ‘Waktu (detik)’  font ‘Verdana,12’
set ylabel ‘Laju Peluruhan’ font ‘Verdana,12’
set title  ‘Data Laju Peluruhan Ag-108’ font ‘Verdana,12’
# rentang sumbu
set xrange [0:250]
set yrange [0:300]
set mxtics 5
set mytics 5 
# rentang fitting:
set samples 300,300
# fungsi matematis:
T(x) = 12.6 + 313*exp(-x/42.7)
# plot data, fitting, dan fungsi:
plot ‘silver.dat’ title ‘Data Eksperimen’ with errorb    ls 1, \
     ‘silver.dat’ title ‘Bezier Fitting’ smooth sbezier  ls 2, \
     T(x)         title ‘Fungsi Tebakan’  with lines     ls 3
unset output

Pada kode ini, kita telah menggunakan perintah baru seperti set samples, pendefinisian fungsi matematis, dan opsi penggambaran error bar pada perintah plot. Perintah set samples menentukan jumlah data yang akan diambil dalam proses fitting. Di sini fitting dilakukan dalam bentuk interpolasi polinom dengan algoritma Bezier. Baris perintah gambar yang terkait adalah:

plot ‘silver.dat’ smooth sbezier

Gnuplot akan secara otomatis menginterpolasi data eksperimen dengan algoritma tersebut. Ada lebih banyak detail seputar fitting pada Gnuplot yang dapat dibaca pada manual. Tutorial ini sekadar sebagai perangsang untuk sedikit melihat kemampuan Gnuplot dalam proses fitting.

Selanjutnya, dengan Gnuplot kita bisa mendefinisikan fungsi matematis sesuai yang kita kehendaki. Untuk gambar 2D, fungsi matematis dinotasikan sebagai f(x), yaitu fungsi 1 variabel. Rentang variabel x yang digunakan disesuaikan dengan perintah set xrange yang telah dituliskan terlebih dahulu. Operasi-operasi matematis yang dapat digunakan pada Gnuplot di antaranya mencakup operasi aritmetika, operasi trigonometri, dan eksponensial. Beberapa operasi matematis lebih lanjut juga dapat dirujuk pada manual.

Setelah mengeksekusi ‘plotsilver.plt’ ini pada terminal Gnuplot, kita bisa peroleh hasil seperti pada Gambar 9 di bagian kiri. Panel kanan pada Gambar 9 menunjukkan variasi keluaran ‘plotsilver.plt’ jika kita ganti perintah plot di akhir ‘plotsilver.plt’ dengan baris kode berikut ini:

plot ‘silver.dat’ title ‘Data Eksperimen’ with errorb    ls 1, \
     ‘silver.dat’ using 1:2 notitle       with  lines    ls 1

Pada baris pertama kode di atas, kita menjaga perintah plot seperti semula karena kita ingin menggambar titik-titik data dengan error bar. Opsi notitle digunakan karena kita tidak ingin legenda data ini muncul lagi pada gambar. Sementara itu, opsi using 1:2 pada baris kedua mengindikasikan bahwa untuk bagian plot tersebut kita hanya mengambil kolom 1 dan kolom 2 dari data ‘silver.dat’ dan kemudian digambar garisnya dengan opsi with lines. Itulah sebabnya kita bisa lihat antar titik-titik data yang mengandung error bar pada bagian kanan Gambar 9 dapat dihubungkan oleh sebuah garis.

Gambar 9: Keluaran ‘plotsilver.plt’ (panel kiri) dan variasinya (panel kanan).
Gambar 9: Keluaran ‘plotsilver.plt’ (panel kiri) dan variasinya (panel kanan).

Penggunaan opsi using lebih lanjut pada perintah plot sangat bermanfaat jika kita memiliki data mentah penelitian yang mengandung banyak kolom, padahal kita hanya ingin memvisualisasikan kolom-kolom tertentu saja dari data tersebut. Alih-alih mengubah data mentah dan menyalinnya pada berkas data baru, kita cukup memilih kolom tertentu yang ingin kita presentasikan dari data mentah yang ada.

***

Demikianlah tutorial singkat Gnuplot ini beserta beberapa perangkat pendukungnya untuk keperluan visualisasi data penelitian. Kita dapat mempelajari bermacam-macam grafik yang dapat dibuat oleh Gnuplot seperti yang telah disebutkan di awal dengan banyak melakukan coba-coba sendiri untuk setiap perintah/kode Gnuplot yang tersedia pada manual.

Dengan banyak berlatih, kita dapat mengingat kode-kode Gnuplot secara otomatis yang kemudian mempercepat proses penyelesaian suatu gambar dan visualisasi data. Terlebih lagi, Gnuplot versi terbaru sudah mendukung beragam sintaks terstruktur layaknya sebuah bahasa pemrograman. Semakin sering kita berinteraksi dengan kode-kode ini maka semakin mudah grafik-grafik yang sulit sekalipun untuk kita gambar dalam waktu singkat. Cita rasa seni yang baik pun dapat terasah dengan melihat beragam contoh yang ada pada situs-situs demo Gnuplot. Tentunya kita ingin agar gambar hasil penelitian yang kita buat tidak hanya menampilkan data semata-mata, tetapi juga enak dipandang dan memiliki kesan visual yang mendalam.

Referensi lebih lanjut:

Leave a Reply

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

search previous next tag category expand menu location phone mail time cart zoom edit close