BelajarBIGDATA#13 Membuat Program GUI untuk Statistik dengan Library Tkinter pada Python

Python dengan tampilan GUI merupakan bagian dari inti pembelajaran Bigdata, karena mempelajari python adalah memahami dasar dari pengolahan data dengan ukuran yang sangat besar, sedangkan mempelajari Graphical User Interface adalah memahami cara menyajikan atau membuat tampilan data menjadi lebih indah, salah satu basis Graphical User Interface yang akan di pelajari adalah Graphical User Interface untuk statistik.

Visualisasi Bigdata
Selain menggunakan Tkinter untuk menyajikan Graphical User Interface juga bisa menggunakan matplotlib, dash dan plotly untuk mempercantik tampilan visualisasi datanya.

Langsung saja silahkan anda coba untuk menuliskan baris program di bawah ini untuk memahami dan melatih kemampuan dalam melakukan script coding python untuk analisis bigdata, program di bawah ini adalah visualisasi data dengan hasil yang lebih memuaskan dari pembahasan sebelumnya.

import matplotlib as mpl

import numpy as np
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import pandas as pd

def update_grafik():
    ax.cla()
    if (grafik.get() == 'semua'):
        data.plot(kind="bar",x="Kota Harga Eceran", y=["2011","2012","2013"], ax=ax)
    elif (grafik.get() == '2011'):
        data.plot(kind="bar",x="Kota Harga Eceran", y=["2011"], ax=ax)
    elif (grafik.get() == '2012'):
        data.plot(kind="bar",x="Kota Harga Eceran", y=["2012"], ax=ax)
    elif (grafik.get() == '2013'):
        data.plot(kind="bar",x="Kota Harga Eceran", y=["2013"], ax=ax)
    canvas.draw()
    print(grafik.get())

data = pd.read_csv("https://raw.githubusercontent.com/nurirfansyah/digitalent_ITS_bigdata/master/hargaberas.csv", sep=';')
header = pd.read_csv("https://raw.githubusercontent.com/nurirfansyah/digitalent_ITS_bigdata/master/hargaberas.csv", sep=';', header=None,nrows=1)

fig = mpl.figure.Figure(figsize = (6,5))
ax = fig.add_axes([0.1,0.1,0.85,0.85])

data.plot(kind="bar",x="Kota Harga Eceran", y=["2011","2012","2013"], ax=ax)

utama = tk.Tk()
w = tk.Canvas(utama, width=600, height=600)
w.pack()

canvas = FigureCanvasTkAgg(fig, master=w)
canvas.draw()
canvas.get_tk_widget().pack(side = tk.LEFT, fill=tk.X)

grafik = tk.StringVar()
grafik.set("semua")

radio_semua = tk.Radiobutton(utama, text="semua", variable = grafik, value = 'semua', command=update_grafik).pack()
radio_2011  = tk.Radiobutton(utama, text="2011", variable = grafik, value = '2011', command=update_grafik).pack()
radio_2012  = tk.Radiobutton(utama, text="2012", variable = grafik, value = '2012', command=update_grafik).pack()
radio_2013  = tk.Radiobutton(utama, text="2013", variable = grafik, value = '2013', command=update_grafik).pack()

utama.mainloop()
Apabila baris kode di atas dijalankan akan menghasilkan sebuah program aplikasi seperti yang anda lihat di bawah ini. Data visualisasi program ini di ambil dari sumber online dimana data tersebut merupakan data selama tiga tahun berturut-turut, pada penampil juga tersedia visualisasi data untuk masing-masing tahun, dan tampilan untuk membandingkan data dari tahun ke tahun. Berikut di bawah ini adalah hasil tampilanya.

Hasil tampilan program visualisasi statisktik
Selanjutnya masih tujuan program yang sama yaitu untuk visualisasi data dengan statistik, namun bedanya adalah jika program sebelumnya menampilkan tampilan dengan berbasis desktop, kali ini akan menampilkan tampilan statistik dengan berbasis web, sehingga tampilan visualisasi nantinya bisa kita embeded di halaman website yang kita miliki. berikut di bawah ini adalah baris kodenya.

from plotly import __version__



from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot


import pandas as pd


import numpy as np


import plotly.graph_objs as go




subjects = ['Mathematics', 'English', 'History', 'Science', 'Arts']


marks = [67, 60, 36, 61, 58]


marks_dataset = zip(subjects, marks)




marks_df = pd.DataFrame(list(marks_dataset), columns=['Subjects', 'Marks'])




marks_data = [go.Bar(x=marks_df.Subjects, y=marks_df.Marks)]




plot({ 'data': marks_data,


            'layout': {


               'title': 'Marks Distribution',


               'xaxis': {


                 'title': 'Subjects'},


               'yaxis': {


                'title': 'Marks '}


        }})

Jika baris program di atas kita jalankan maka akan membuka window browser karena file yang dihasilkan dalam compile statistik ini akan menghasilkan visualisasi dalam bentuk html sehingga membutuhkan browser untuk melihatnya. berikut di bawah ini adalah tampilan hasilnya.

Visualisasi statistik dalam bentuk html
Itulah cara untuk menampikan atau visualisasi data dari sumber online yang kita olah kemudian kita tampilkan dengan berbagai macam hasil statisktik, mulai dari desktop sampai dengan website. Anda bisa explore lebih luas untuk mendapatkan pengalaman yang lebih banyak.

No comments:

Powered by Blogger.