A simple GUI dataset analyzer using Python tkinter
from statistics import *
from tkinter import Tk, Entry, Label, Frame, LabelFrame, Button, StringVar
pr_wdg = Tk()
pr_wdg.geometry('1000x800+0+0')
pr_wdg.title("Fast Statistics")
#Signature
lblfrm_info = LabelFrame(pr_wdg,
text = "NOTE!", font = ('arial',15,'underline'))
lblfrm_info.grid(row = 0, column = 0)
lbl_infotxt = Label(lblfrm_info,
text = "This is a demo app.\nBy: Mohammed Ismail",
font = ('aerial',25,'italic'),
bg = 'black', fg = 'green')
lbl_infotxt.grid(row = 1, column = 1)
#Recieving dataset
frm_anz = Frame(pr_wdg)
frm_anz.grid(row = 2, column = 0)
lbl_dset = Label(frm_anz,
text = "Enter dataset: ", font =('arial',15,'bold'))
lbl_dset.grid(row = 0, column = 0)
dset = StringVar()
ent_dset = Entry(frm_anz,
textvariable = dset,
font = ('arial',15,'italic'), fg = 'white',
bg = 'blue', width = 50)
ent_dset.grid(row = 0, column = 1)
inst_dset = Label(frm_anz,
text = "Data elements are separated by commas")
inst_dset.grid(row = 0, column = 2)
#Analyzing
dset_mean = StringVar()
dset_median = StringVar()
dset_mode = StringVar()
dset_median_hi = StringVar()
dset_median_lo = StringVar()
def analyze():
dset_list = list(map(float, dset.get().split(",")))
dset_mean.set(mean(dset_list))
dset_median.set(median(dset_list))
dset_median_hi.set(median_high(dset_list))
dset_median_lo.set(median_low(dset_list))
try : dset_mode.set(mode(dset_list))
except : dset_mode.set("No mode!")
btn_anz = Button(frm_anz,
text = "Analyze", bg = 'powder blue',
command = analyze)
btn_anz.grid(row = 2, column = 1)
#Caculate mean
lblt_mean = Label(frm_anz,
text = "Mean: ", font =('arial',15,'bold'))
lblt_mean.grid(row = 4, column = 0)
lbl_mean = Label(frm_anz,
textvariable = dset_mean,
font = ('arial',15), fg = 'yellow',
bg = 'green', width = 25)
lbl_mean.grid(row = 4, column = 1)
#Caculate median
lblt_median = Label(frm_anz,
text = "Median: ", font =('arial',15,'bold'))
lblt_median.grid(row = 5, column = 0)
lbl_median = Label(frm_anz,
textvariable = dset_median,
font = ('arial',15), fg = 'yellow',
bg = 'green', width = 25)
lbl_median.grid(row = 5, column = 1)
#Caculate mode
lblt_mode = Label(frm_anz,
text = "Mode: ", font =('arial',15,'bold'))
lblt_mode.grid(row = 6, column = 0)
lbl_mode = Label(frm_anz,
textvariable = dset_mode,
font = ('arial',15), fg = 'yellow',
bg = 'green', width = 25)
lbl_mode.grid(row = 6, column = 1)
#Caculate high median
lblt_himed = Label(frm_anz,
text = "High median: ", font =('arial',15,'bold'))
lblt_himed.grid(row = 7, column = 0)
lbl_himed = Label(frm_anz,
textvariable = dset_median_hi,
font = ('arial',15), fg = 'yellow',
bg = 'green', width = 25)
lbl_himed.grid(row = 7, column = 1)
#Caculate low median
lblt_lomed = Label(frm_anz,
text = "Low median: ", font =('arial',15,'bold'))
lblt_lomed .grid(row = 8, column = 0)
lbl_lomed = Label(frm_anz,
textvariable = dset_median_lo,
font = ('arial',15), fg = 'yellow',
bg = 'green', width = 25)
lbl_lomed.grid(row = 8, column = 1)
#------Terminating----|
pr_wdg.mainloop()
تعليقات
إرسال تعليق