From 39be4b22960f0ec718fe1a568d7020a7d563dc2a Mon Sep 17 00:00:00 2001 From: multiverseweb Date: Sun, 10 Nov 2024 09:14:21 +0530 Subject: [PATCH] added netlify image --- Documentation/images/netlify.svg | 1 + README.md | 4 +- plot.png | Bin 0 -> 163126 bytes .../financeTracker.cpython-311.pyc | Bin 16513 -> 30231 bytes software/__pycache__/report.cpython-311.pyc | Bin 6868 -> 6867 bytes software/tempCodeRunnerFile.py | 1379 +++++++++++++++++ 6 files changed, 1382 insertions(+), 2 deletions(-) create mode 100644 Documentation/images/netlify.svg create mode 100644 plot.png create mode 100644 software/tempCodeRunnerFile.py diff --git a/Documentation/images/netlify.svg b/Documentation/images/netlify.svg new file mode 100644 index 0000000..2edda22 --- /dev/null +++ b/Documentation/images/netlify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/README.md b/README.md index dd1144e..9b68c17 100644 --- a/README.md +++ b/README.md @@ -206,9 +206,9 @@ Want to contribute to this project? Follow these steps: Deployed on - + -You can visit the live site for Dataverse and related tools [here](https://multiverse-dataverse.netlify.app/). +[Visit Dataverse's Website](https://multiverse-dataverse.netlify.app/). Back to top diff --git a/plot.png b/plot.png new file mode 100644 index 0000000000000000000000000000000000000000..c8292bcfe9a18109262cb81fdb64879511c732ed GIT binary patch literal 163126 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 I&wf=10GEXk3jhEB delta 55 zcmca?dc~A?IWI340}xEUD3_kSk=KuvQFn3-s{~{5<`UK#CO)?l5+}GXa)eyr2)V!! KviTqTRUrV#B@xyD diff --git a/software/tempCodeRunnerFile.py b/software/tempCodeRunnerFile.py new file mode 100644 index 0000000..dcdd555 --- /dev/null +++ b/software/tempCodeRunnerFile.py @@ -0,0 +1,1379 @@ +import tkinter as tk #for GUI +from tkinter import * #for GUI +---------------------------+ +from tkinter import messagebox #for GUI messages | DATAVERSE | +import customtkinter #for scrollable GUI frame | version 06.02.24 | +from PIL import Image, ImageTk #for GUI images | Designed & Developed By | +from functools import partial #for calling button functions | TEJAS GUPTA | +import mysql.connector as my #for connecting database +---------------------------+ +import datetime #for getting current date |developing version 6550(24)| +import time #for getting current time +---------------------------+ +import webbrowser #for opening external link +import ctypes as ct #for styling windows +import financeTracker as financeTracker #user defined module - finance +import matplotlib.pyplot as plt #for plotting graphs +from mpl_toolkits.mplot3d import Axes3D #for 3d plotting +import matplotlib #for plotting graphs +from matplotlib.widgets import Cursor #for lines on hover in plot +import numpy as np #for x-axis time arange +#===================================================================================================================plot colors +colors=["#440154", "#3b528b","#21918c", "#5ec962", "#fde725","#f89540", "#e16462","#b12a90", "#6a00a8", "#0d0887", "#3474eb", "#5ec962", "yellow", "#f89540", "tomato","tan"] +maxLimit = 16 # maximum limit for colors +#===================================================================================================================connecting mySQL +mycon=financeTracker.mycon +cursor=financeTracker.cursor +cursor.execute("CREATE TABLE IF NOT EXISTS user (u_id INT PRIMARY KEY, u_name VARCHAR(255), pwd VARCHAR(255), country varchar(50) default 'India')") +cursor.execute("CREATE TABLE IF NOT EXISTS finance (u_id INT, fiat FLOAT DEFAULT 0, gold FLOAT DEFAULT 0, stocks FLOAT DEFAULT 0, commodity FLOAT DEFAULT 0, sales FLOAT DEFAULT 0, expenditure FLOAT DEFAULT 0, total DOUBLE AS (fiat + gold + stocks + commodity + sales - expenditure), entryDate date);") +#=================================================================================================================================== +#============================================================================================Dataverse Operations +#======================================================================password encryption +def encrypt(pwd): + n=len(pwd) + e="" + t=pwd[int(n/2):] + t+=pwd[:int(n/2)] + for _ in range(len(t)): + e+=chr(ord(t[_])*2) + return e +#=============================================================================Login- b1 +def login(b1,b2,b3,b4,preview_image): + switch(b1,b2,b3,b4) + preview_image.place_forget() + def show_message(): + message=financeTracker.check_credentials(f"{user.get()}",f"{pwd.get()}") + word=message.split(' ')[0] + if word=='Login': + messagebox.showinfo(title="", message=message,icon="info") + global menu + menu.pack_forget() + form.pack_forget() + user_menu(message.split(' ')[-1],f"{user.get()}") + elif word=='No': + messagebox.showinfo(title="", message=message,icon="info") + elif word=='Incorrect': + messagebox.showinfo(title="", message=message,icon="error") + else: + messagebox.showinfo(title="", message="Some unknown error occured.",icon="warning") + global relation + relation.pack_forget() + global text + text.pack_forget() + global form + form.pack_forget() + form=Frame(root,bg="#171717",relief=SUNKEN) + form.pack(side=TOP,fill=Y,pady=140,padx=(0,200)) + global title + title.pack_forget() + title=Label(form,font="poppins 10",fg='#ffffff',bg='#171717',text="PERSONAL FINANCE TRACKER") + title.pack(fill=Y,pady=35,padx=0) + user=StringVar() + pwd=StringVar() + user_entry=Entry(form,textvariable=user,width=30) + pwd_entry=Entry(form,textvariable=pwd,width=30,show="●") + user_entry.insert(0,'Username') + pwd_entry.insert(0,'Password') + user_entry.pack(pady=20,padx=50) + pwd_entry.pack(pady=20,padx=50) + Button(form,text="Login",width=15,command=show_message,cursor="hand2").pack(pady=20) + form.mainloop() + +#====================================================================== Create account -b2 +def create(b2,b1,b3,b4,preview_image): + def show_message(u_name,pwd,country,names): + u_name=f"{u_name.get()}" + pwd=f"{pwd.get()}" + pwd=encrypt(pwd) + country=f"{country.get()}" + if u_name in names: + messagebox.showinfo(title="Username Not Available", message="That username is already taken. Try another one.",icon="info") + else: + u_id = datetime.datetime.now().strftime("%H%M%S") + q="insert into user values({},'{}','{}','{}')".format(u_id,u_name,pwd,country) + cursor.execute(q) + mycon.commit() + msg="Account Created Successfully! ✓\nYour User ID is: {}\n".format(u_id) + global text + text=Label(font="poppins 10 bold",fg='#ffffff',bg='#000000',text=msg) + text.pack(fill=X,pady=35,padx=(0,200)) + messagebox.showinfo(title="Important", message="This User ID is required while deleting the account.",icon="warning") + + switch(b2,b1,b3,b4) + preview_image.place_forget() + names=[] + q="select u_name from user" + cursor.execute(q) + data=cursor.fetchall() + for i in data: + names.append(i[0]) + global relation + relation.pack_forget() + global text + text.pack_forget() + global form + form.pack_forget() + form=Frame(root,bg="#171717",relief=SUNKEN) + form.pack(side=TOP,fill=Y,pady=140,padx=(0,200)) + global title + title.pack_forget() + title=Label(form,font="poppins 10",fg='#ffffff',bg='#171717',text="Create Dataverse Account") + title.pack(fill=Y,pady=35,padx=0) + u_name=StringVar() + pwd=StringVar() + country=StringVar() + user_entry=Entry(form,textvariable=u_name,width=30) + pwd_entry=Entry(form,textvariable=pwd,width=30) + country_entry=Entry(form,textvariable=country,width=30) + user_entry.insert(0,'Username') + pwd_entry.insert(0,'Password') + country_entry.insert(0,'India') + user_entry.pack(pady=20,padx=50) + pwd_entry.pack(pady=20,padx=50) + country_entry.pack(pady=20,padx=50) + Button(form,text="Create Account",width=15,command=partial(show_message,u_name,pwd,country,names),cursor="hand2").pack(pady=20) + + form.mainloop() +#=========================================================================GUEST +def guest(b1,b2,b3,b4,preview_image): + switch(b1,b2,b3,b4) + global relation + relation.pack_forget() + global text + text.pack_forget() + global form + form.pack_forget() + preview_image.place_forget() + global menu + menu.pack_forget() + menu=Frame(root,bg="#171717",relief=SUNKEN) + menu.pack(side=LEFT,fill=Y) + global title + title.pack_forget() + title=Label(font="poppins 10 bold",fg='#ffffff',bg='#000000',text="DATA VISUALISATION SOFTWARE") + title.pack(fill=X,pady=35,padx=(0,200)) + +#====================================================================== adding images to buttons + def resize_image(image_path, width=20, height=20): + image = Image.open(image_path) + image = image.resize((width, height), Image.Resampling.LANCZOS) + return ImageTk.PhotoImage(image) + + # Resizing all images to 20x20 + line_graph = resize_image("software/images/line_graph.png", 20) + bar_graph = resize_image("software/images/bar_graph.png", 20) + histogram = resize_image("software/images/histogram.png", 20) + area_chart = resize_image("software/images/area_chart.png", 20) + scatter_plot = resize_image("software/images/scatter_plot.png", 20) + heatmap_plot = resize_image("software/images/heatmap_plot.png",20) + radar_chart = resize_image("software/images/radar_chart.png", 20) + pie_chart = resize_image("software/images/pie_chart.png", 20) + _3dScatter = resize_image("software/images/3dScatter.png", 20) + equation = resize_image("software/images/equation.png", 20) + polarScatter = resize_image("software/images/polarScatter.png", 20) + surface = resize_image("software/images/surface.png", 20) + home = resize_image("software/images/home.png", 20) + + b1=Button(menu,fg='#ffffff',bg='#1a1a1a',image=line_graph,text="Line Graph",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + b2=Button(menu,fg='#ffffff',bg='#1a1a1a',image=bar_graph,text="Bar Graph",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + b3=Button(menu,fg='#ffffff',bg='#1a1a1a',image=scatter_plot,text="Scatter Plot",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + b4=Button(menu,fg='#ffffff',bg='#1a1a1a',image=area_chart,text="Area Chart",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + b5=Button(menu,fg='#ffffff',bg='#1a1a1a',image=histogram,text="Histogram",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + b6=Button(menu,fg='#ffffff',bg='#1a1a1a',image=pie_chart,text="Pie Chart",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + b7=Button(menu,fg='#ffffff',bg='#1a1a1a',image=heatmap_plot,text="Heatmap",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + b8=Button(menu,fg='#ffffff',bg='#1a1a1a',image=radar_chart,text="Radar Chart",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + b9=Button(menu,fg='#ffffff',bg='#1a1a1a',image=polarScatter,text="Polar Scatter Plot",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + b10=Button(menu,fg='#ffffff',bg='#1a1a1a',image=equation,text="Equations",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + #b11=Button(menu,fg='#ffffff',bg='#1a1a1a',text="Maps",width=22,font="poppins 10",cursor="hand2") + b13=Button(menu,fg='#ffffff',bg='#1a1a1a',image=_3dScatter,text="3D Scatter",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + b14=Button(menu,fg='#ffffff',bg='#1a1a1a',image=surface,text="3D Surface",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + #b12=Button(menu,fg='#ffffff',bg='#1a1a1a',text="Live Graphs",width=22,font="poppins 10",cursor="hand2") + b15=Button(menu,fg='#ffffff',bg='#1a1a1a',image=home,text="Go To Home",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10,command=main) + + b1.image = line_graph + b2.image = bar_graph + b3.image = scatter_plot + b4.image = area_chart + b5.image = histogram + b6.image = pie_chart + b7.image = heatmap_plot + b8.image = radar_chart + b13.image = _3dScatter + b10.image = equation + b9.image = polarScatter + b14.image = surface + b15.image = home + + b1.config(command=partial(line,c="line")) + b2.config(command=partial(line,c="bar")) + b3.config(command=partial(line,c="scatter")) + b4.config(command=partial(line,c="area")) + b5.config(command=partial(line,c="hist")) + b7.config(command=partial(heatmap,c="heatmap")) + b8.config(command=partial(line,c="radar")) + b9.config(command=partial(line,c="polar")) + b6.config(command=partial(pie,c="pie")) + b13.config(command=partial(scatter,c="scatter3d")) + + b1.pack(pady=(30,5),padx=15) + b2.pack(pady=5,padx=15) + b3.pack(pady=5,padx=15) + b4.pack(pady=5,padx=15) + b5.pack(pady=5,padx=15) + b6.pack(pady=5,padx=15) + b7.pack(pady=5,padx=15) + b8.pack(pady=5,padx=15) + b9.pack(pady=5,padx=15) + b10.pack(pady=5,padx=15) + #b11.pack(pady=5,padx=15) + b13.pack(pady=5,padx=15) + b14.pack(pady=5,padx=15) + #b12.pack(pady=5,padx=15) + b15.pack(pady=30,padx=15) +#==================================================================================Delete Account- b4 +def delete(b4,b1,b3,b2,preview_image): + def show_message(u_name,u_id,pwd,names): + u_name=f"{u_name.get()}" + u_id=u_id.get() + pwd=f"{pwd.get()}" + if u_name in names: + q="select u_id,pwd from user where u_name='{}'".format(u_name) + cursor.execute(q) + data=cursor.fetchall() + if u_id==data[0][0] and pwd==data[0][1]: + cursor.execute("delete from user where u_id={}".format(u_id)) + mycon.commit() + cursor.execute("delete from finance where u_id={}".format(u_id)) + mycon.commit() + messagebox.showinfo(title="", message="Account deleted successfully. ✓",icon="info") + else: + messagebox.showinfo(title="Attempt failed.", message="Invalid credentials. ✖",icon="error") + + else: + messagebox.showinfo(title="Error", message="Account not found. ✖",icon="error") + + switch(b4,b1,b3,b2) + preview_image.place_forget() + names=[] + q="select u_name from user" + cursor.execute(q) + data=cursor.fetchall() + for i in data: + names.append(i[0]) + global relation + relation.pack_forget() + global text + text.pack_forget() + global form + form.pack_forget() + form=Frame(root,bg="#171717",relief=SUNKEN) + form.pack(side=TOP,fill=Y,pady=140,padx=(0,200)) + global title + title.pack_forget() + title=Label(form,font="poppins 10",fg='#ffffff',bg='#171717',text="Delete Dataverse Account") + title.pack(fill=Y,pady=35,padx=0) + u_name=StringVar() + u_id=IntVar() + pwd=StringVar() + user_entry=Entry(form,textvariable=u_name,width=30) + user_id=Entry(form,textvariable=u_id,width=30) + pwd_entry=Entry(form,textvariable=pwd,width=30) + user_entry.insert(0,'Username') + user_id.insert(0,'User I') + pwd_entry.insert(0,'Password') + user_entry.pack(pady=20,padx=50) + user_id.pack(pady=20,padx=50) + pwd_entry.pack(pady=20,padx=50) + Button(form,text="Delete Account",width=15,command=partial(show_message,u_name,u_id,pwd,names),cursor="hand2").pack(pady=20) + + form.mainloop() +#=============================================================================================USER OPERATIONS +#===========================================================================Menu after login +def user_menu(u_id,u_name): + global relation + relation.pack_forget() + global form + form.pack_forget() + global menu + menu.pack_forget() + global text + text.pack_forget() + menu=Frame(root,bg="#171717",relief=SUNKEN) + menu.pack(side=LEFT,fill=Y) + global title + title.pack_forget() + #text=Label(font="poppins 10 bold",fg='#ffffff',bg='#000000',text="PERSONAL FINANCE TRACKER") + #text.pack(fill=X,pady=35,padx=(0,200)) + + profile=Frame(root,bg="#171717",relief=SUNKEN,width=25,height=100) + profile.pack(side=RIGHT,fill=Y,anchor=NE) + q="select entryDate from finance where u_id={}".format(u_id) + cursor.execute(q) + data=cursor.fetchall() + since="NA" + last="NA" + if len(data)!=0: + since=data[0][0].strftime("%d-%m-%y") + last=data[-1][0].strftime("%d-%m-%y") + name=Label(profile,font="poppins 10 bold",fg='#ffffff',bg='#171717',text="{}\n\n\nMember since: {}\n\nLast active on: {}".format(u_name.title(),since,last)) + name.pack(fill=X,padx=30,pady=10) + + b1=Button(menu,fg='#ffffff',bg='#1a1a1a',text="Add Data",width=22,font="poppins 10",command=partial(insert,u_id,u_name),cursor="hand2") + b2=Button(menu,fg='#ffffff',bg='#1a1a1a',text="View Data",width=22,command=partial(view,u_id,u_name),font="poppins 10",cursor="hand2") + b3=Button(menu,fg='#ffffff',bg='#1a1a1a',text="Visualise Data",width=22,font="poppins 10",command=partial(visualize,u_name),cursor="hand2") + b5=Button(menu,fg='#ffffff',bg='#1a1a1a',text="Delete Data",width=22,font="poppins 10",command=partial(delete_data,u_id),cursor="hand2") + b4=Button(menu,fg='#ffffff',bg='#1a1a1a',text="Save & Logout",width=22,command=main,font="poppins 10",cursor="hand2") + + b1.pack(pady=(30,5),padx=15) + b2.pack(pady=5,padx=15) + b3.pack(pady=5,padx=15) + b5.pack(pady=5,padx=15) + b4.pack(pady=5,padx=15) + b4.config(command=partial(clear,menu,text,profile)) + +def view(u_id,u_name): + result=financeTracker.view_data(u_id) + global form + form.pack_forget() + global relation + relation.pack_forget() + relation=customtkinter.CTkScrollableFrame(root, + width=900, + height=700, + label_text="{}'s Data".format(u_name.title()), + border_width=1, + fg_color="#000000", + scrollbar_button_hover_color="#ffffff" + ) + relation.pack(side=TOP,fill=Y,pady=40) + title=Label(relation,font="Courier 10",fg='#ffffff',bg='#000000',text=result) + title.grid(row=3,column=2) +#=========================================================================Visualize data +def visualize(u_name): + global relation + relation.pack_forget() + global form + form.pack_forget() + global text + text.pack_forget() + q="select u_id from user where u_name='{}'".format(u_name) + cursor.execute(q) + u_id=cursor.fetchall()[0][0] + requireds=financeTracker.fetch_data(u_id) #in progress + if requireds==None: + messagebox.showinfo(title="", message="Not enough data to visualize. ✖",icon="warning") + else: + values=financeTracker.plot_data(requireds,u_name) + report="Total Amount= {}\nMax Till Now= {}".format(values[0],values[1]) + text=Label(font="poppins 10 bold",fg='#ffffff',bg='#000000',text=report) + text.pack(fill=X,pady=35,padx=(0,200)) +#==========================================================================================insert data +def insert(u_id,u_name): + def show_message(): + ti=str(time.strftime('%y-%m-%d')) + q="insert into finance (u_id,salary,gold,stocks,commodity,sales,expenditure,entryDate) values({},{},{},{},{},{},{},'{}')".format(u_id,variables[0].get(),variables[1].get(),variables[2].get(),variables[3].get(),variables[4].get(),variables[5].get(),ti) + cursor.execute(q) + mycon.commit() + messagebox.showinfo(title="", message="Data added successfully. ✓",icon="info") + global relation + relation.pack_forget() + global form + form.pack_forget() + global text + text.pack_forget() + form=customtkinter.CTkScrollableFrame(root, + width=900, + height=500, + label_text="{}'s Data".format(u_name.title()), + border_width=1, + fg_color="#171717", + scrollbar_button_hover_color="#ffffff" + ) + form.pack(side=TOP,fill=Y,pady=40,padx=(0,125)) + title=Label(form,font="poppins 10",fg='#ffffff',bg='#171717',text="Enter Today's Data") + title.pack(fill=Y,pady=35,padx=0) + + cursor.execute("DESCRIBE finance") + schema = cursor.fetchall() + money=IntVar() + gold=IntVar() + stocks=IntVar() + commodity=IntVar() + sales=IntVar() + expenditure=IntVar() + variables=[money,gold,stocks,commodity,sales,expenditure] + new=[] + for i in range(1,7): + text=Label(form,text=schema[i][0].title()+":\n",bg='#171717',fg='#ffffff') + text.pack(fill=X,pady=(5,0),padx=(0,0)) + value=Entry(form,textvariable=variables[i-1],width=50) + value.insert(0,'') + value.pack(pady=(0,0),padx=50) + Button(form,text="Add Data",width=15, command=show_message,cursor="hand2").pack(pady=20) + form.mainloop() + +#==========================================================================================delete data +def delete_data(u_id): + def show(u_id,e_date): + q="select * from finance where u_id={} and entryDate='{}'".format(u_id,e_date.get()) + cursor.execute(q) + data=cursor.fetchall() + if len(data)==0: + messagebox.showinfo(title="", message="Data not found. ✖",icon="warning") + else: + q="delete from finance where u_id={} and entryDate='{}'".format(u_id,e_date.get()) + cursor.execute(q) + mycon.commit() + messagebox.showinfo(title="", message="Data deleted successfully. ✓",icon="info") + global relation + relation.pack_forget() + global form + form.pack_forget() + global text + text.pack_forget() + form=Frame(root,bg="#171717",relief=SUNKEN) + form.pack(side=TOP,fill=Y,pady=140,padx=(0,200)) + title=Label(form,font="poppins 10",fg='#ffffff',bg='#171717',text="Delete Data") + title.pack(fill=Y,pady=35,padx=0) + e_date=StringVar() + date_entry=Entry(form,textvariable=e_date,width=30) + date_entry.insert(0,'YYYY-MM-DD') + date_entry.pack(pady=20,padx=50) + Button(form,text="Delete Data",width=15,command=partial(show,u_id,e_date),cursor="hand2").pack(pady=20) + + form.mainloop() + +#=========================================================================Clearing screen +def clear(menu,text,profile): + menu.pack_forget() + text.pack_forget() + profile.pack_forget() + main() + +#=====================================================================disabling buttons +def switch(b1,b2,b3,b4): + b1["state"] = DISABLED + b2["state"] = NORMAL + b3["state"] = NORMAL + b4["state"] = NORMAL +#==================================================================================open link +def callback(url): + webbrowser.open_new(url) + + + +#=====================================================================================================================================DATA VISUALIZATION +x = [] +y = [] +d_attr=[] +count=0 +def line(c): + global form + form.pack_forget() + form=Frame(root,bg="#171717",relief=SUNKEN) + form.pack(side=LEFT,pady=20,padx=20,anchor=NW) + global title + title.pack_forget() + title_var=StringVar() + x_var=StringVar() + y_var=IntVar() + title_label = Label(form, text = 'Title: ', font=('calibre',10),fg='#ffffff',bg='#171717') + title_entry = Entry(form,textvariable = title_var, font=('calibre',10)) + x_label = Label(form, text = 'Name of Independent Variable: ', font = ('calibre',10),fg='#ffffff',bg='#171717') + x_entry=Entry(form, textvariable = x_var, font = ('calibre',10)) + y_label = Label(form, text = 'No. of Dependent Variable(s): ', font = ('calibre',10),fg='#ffffff',bg='#171717') + y_entry=Entry(form, textvariable = y_var, font = ('calibre',10)) + + title_entry.insert(0,'Untitled') + x_entry.insert(0,'x') + + title_label.grid(row=0,column=0,padx=(5,5),pady=(15,5)) + title_entry.grid(row=0,column=1,padx=(0,10),pady=(15,5)) + x_label.grid(row=1,column=0,padx=(5,5),pady=5) + x_entry.grid(row=1,column=1,padx=(0,10),pady=5) + y_label.grid(row=2,column=0,padx=(5,5),pady=5) + y_entry.grid(row=2,column=1,padx=(0,10),pady=5) + sub_btn=Button(form,text="Create",width=10,cursor="hand2") + sub_btn.grid(row=3,column=1,padx=(10,15),pady=(15,15)) + if(c=="radar"): + sub_btn.configure(command=partial(radar_values,c,title_var,x_var,y_var)) + else: + sub_btn.configure(command=partial(line_values,c,title_var,x_var,y_var)) + + form.mainloop() + + +def line_values(c,title_var,x_var,y_var): + def y_values(c,y,start,end,width,names_form,x_label): + if width.get()==0: + width=width.get()+1 + else: + width=width.get() + Label(names_form, text = "For y-axis", font=('calibre',10,"bold"),fg='#ffffff',bg='#171717').grid(row=5,column=0,padx=(15,10),pady=(15,5)) + for i in range(start.get(),end.get()+1,width): + x.append(i) + #count+=1 + for i in range(y_var): + Label(names_form, text = "Dependent Attribute {}: ".format(i+1), font=('calibre',10),fg='#ffffff',bg='#171717').grid(row=6+i,column=0,padx=(15,10),pady=(10,5)) + Entry(names_form,textvariable = d_attr[i], font=('calibre',10)).grid(row=6+i,column=1,padx=(15,10),pady=(10,5)) + enter_btn=Button(names_form,text="Enter Values",width=10,cursor="hand2") + enter_btn.grid(row=7+y_var,column=1,padx=(10,15),pady=10) + enter_btn.configure(command=partial(enter_values,c,y,start,end,width,x_label)) + + def enter_values(c,y,start,end,width,x_label): + for i in range(y_var): + default=[] + for j in range(start.get(),end.get()+1,width): + default.append(0) + y.append(default) + for i in y: + for j in i: + i=IntVar() + global values_form + values_form.place_forget() + values_form=customtkinter.CTkScrollableFrame(root, + width=230, + height=665, + label_text="Dependent Variable(s) Values", + border_width=1, + fg_color="#171717", + scrollbar_button_hover_color="#ffffff", + border_color="#000000" + ) + values_form.place(relx=1.0, rely=1.0, x=-930, y=-740,anchor=NW) + row=0 + entry_widgets = [] + for i in range(len(y)): + entries=[] + Label(values_form, text = "For {}".format(d_attr[i].get().title()), font=('calibre',10,"bold"),fg='#ffffff',bg='#171717').grid(row=row,column=0,padx=(15,10),pady=(15,5)) + for j in range(len(y[0])): + Label(values_form, text = "{}({}={}): ".format(d_attr[i].get(),x_label,x[j]), font=('calibre',10),fg='#ffffff',bg='#171717').grid(row=row+j+1,column=0,padx=(15,10),pady=(10,5)) + #entry=Entry(values_form,textvariable = y[i][j], font=('calibre',10),width=15).grid(row=row+j+1,column=1,padx=(15,10),pady=(10,5)) + entry = Entry(values_form, font=('calibre',10),width=15) + entry.grid(row=row+j+1,column=1,padx=(15,10),pady=(10,5)) + entry.insert(0,0) + entries.append(entry) + row = row+1 + entry_widgets.append(entries) + row+=len(y[0]) + plot_btn=Button(values_form,text="Plot",width=10,cursor="hand2") + plot_btn.grid(row=row,column=0,padx=(10,15),pady=10) + plot_btn.configure(command=partial(plot_line,c,x,y,d_attr,heading,x_label,start,end,width,entry_widgets)) + + heading=title_var.get() + x_label=x_var.get() + y_var=y_var.get() + + if y_var>maxLimit: + messagebox.showwarning(message="Too many dependent variables!\nThe maximum limit is 16.") + elif y_var<=0: + messagebox.showwarning(message="No. of dependent variables should be greater than 0.") + else: + global values_form + values_form.place_forget() + global names_form + names_form.place_forget() + names_form=customtkinter.CTkScrollableFrame(root, + width=330, + height=480, + label_text="{} Values".format(heading), + border_width=1, + fg_color="#171717", + scrollbar_button_hover_color="#ffffff", + border_color="#000000" + ) + names_form.place(relx=1.0, rely=1.0, x=-1300, y=-555,anchor=NW) + + start=IntVar() + end=IntVar() + width=IntVar() + Label(names_form, text = "For {}".format(x_label), font=('calibre',10,"bold"),fg='#ffffff',bg='#171717').grid(row=0,column=0,padx=(15,10),pady=(15,5)) + start_label = Label(names_form, text = "{} Start Value: ".format(x_label), font=('calibre',10),fg='#ffffff',bg='#171717') + start_entry = Entry(names_form,textvariable = start, font=('calibre',10)) + end_label = Label(names_form, text = "{} End Value: ".format(x_label), font = ('calibre',10),fg='#ffffff',bg='#171717') + end_entry=Entry(names_form, textvariable = end, font = ('calibre',10)) + width_label = Label(names_form, text = "{} Class Width: ".format(x_label), font = ('calibre',10),fg='#ffffff',bg='#171717') + width_entry=Entry(names_form, textvariable = width, font = ('calibre',10)) + + start_label.grid(row=1,column=0,padx=(15,10),pady=(10,5)) + start_entry.grid(row=1,column=1,padx=(10,15),pady=5) + end_label.grid(row=2,column=0,padx=(15,10),pady=5) + end_entry.grid(row=2,column=1,padx=(10,15),pady=5) + width_label.grid(row=3,column=0,padx=(15,10),pady=5) + width_entry.grid(row=3,column=1,padx=(10,15),pady=5) + + next_btn=Button(names_form,text="Next",width=10,cursor="hand2") + next_btn.grid(row=4,column=1,padx=(10,15),pady=10) + next_btn.configure(command=partial(y_values,c,y,start,end,width,names_form,x_label)) + + for i in range(y_var): + d_attr.append("NA") + d_attr[i]=StringVar() + +def plot_line(c,x,y,d_attr,heading,x_label,start,end,width,entry_widgets): + start=start.get() + end=end.get() + #for i in range(start,end+1,width): + #x.append(i) + #count+=1 + + for i in range(len(entry_widgets)): + #for j in range(len(y[0])): + y[i]=[float(entry.get()) for entry in entry_widgets[i]] + + plt.style.use('dark_background') + fig, ax=plt.subplots(figsize=(6.5, 5)) + plt.subplots_adjust(bottom=0.152,right=0.81) + width=0.9 + if c=="polar": + ax = fig.add_subplot(projection='polar') + for i in range(len(y)): + if c=="line": + plt.plot(x,y[i], label=d_attr[i].get(),color=colors[i],linewidth=0.7) + elif c=="bar": + plt.bar(x,y[i], label=d_attr[i].get(),color=colors[i],linewidth=0.7,width=width, alpha = 0.7) + width-=0.2 + elif c=="scatter": + plt.scatter(x,y[i], label=d_attr[i].get(),color=colors[i],linewidth=0.7) + elif c=="area": + plt.fill_between(x, y[i],label=d_attr[i].get(),color=colors[i], alpha = 0.7) + elif c=="hist": + for j in range(len(x)): + x[j]=round(x[j]) + print(x, y[i]) + plt.hist(x, y[i],label=d_attr[i].get(),color=colors[i], alpha = 0.7) #PROBLEM HERE + elif c=="polar": + r = 2 * np.random.rand(len(x)) + area = 200 * r**2 + ax.scatter(x, y[i], color=colors[i], s=area, alpha=0.75) + else: + messagebox.showerror(message="Some error occured.") + return + if c in ["line","bar","scatter","hist","area"]: + plt.legend(bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0) + plt.title(heading) + plt.xticks(rotation=30) + plt.xlabel(x_label) + ax.spines['bottom'].set_color('teal') + ax.spines['top'].set_color('#ffffff40') + ax.spines['right'].set_color('#ffffff40') + ax.spines['left'].set_color('darkturquoise') + ax.grid(linestyle = "dashed",linewidth = 1, alpha = 0.25) + elif c in ["polar"]: + plt.legend(bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0) + plt.title(heading) + plt.xlabel(x_label) + #plt.savefig("example.png", dpi=1000) + financeTracker.move_figure(fig, 865, 125) + cursor = Cursor(ax, color='red', linewidth=0.5) + plt.show() + +def pie(c): + if c=="pie": + global form + form.pack_forget() + form=Frame(root,bg="#171717",relief=SUNKEN) + form.pack(side=LEFT,pady=20,padx=20,anchor=NW) + global title + title.pack_forget() + title_var=StringVar() + y_var=IntVar() + title_label = Label(form, text = 'Title: ', font=('calibre',10),fg='#ffffff',bg='#171717') + title_entry = Entry(form,textvariable = title_var, font=('calibre',10)) + y_label = Label(form, text = 'No. of Variable(s): ', font = ('calibre',10),fg='#ffffff',bg='#171717') + y_entry=Entry(form, textvariable = y_var, font = ('calibre',10)) + + title_entry.insert(0,'Untitled') + + title_label.grid(row=0,column=0,padx=(5,5),pady=(15,5)) + title_entry.grid(row=0,column=1,padx=(0,10),pady=(15,5)) + y_label.grid(row=2,column=0,padx=(5,5),pady=5) + y_entry.grid(row=2,column=1,padx=(0,10),pady=5) + sub_btn=Button(form,text="Create",width=10,cursor="hand2") + sub_btn.grid(row=3,column=1,padx=(10,15),pady=(15,15)) + sub_btn.configure(command=partial(pie_values,c,title_var,y_var)) + + form.mainloop() +def pie_values(c,title_var,y_var): + def enter_pie_values(c,y): + '''for i in range(y_var): + y.append(0) + y[i]=IntVar()''' + global values_form + values_form.place_forget() + values_form=customtkinter.CTkScrollableFrame(root, + width=230, + height=665, + label_text="Variable(s) Values", + border_width=1, + fg_color="#171717", + scrollbar_button_hover_color="#ffffff", + border_color="#000000" + ) + values_form.place(relx=1.0, rely=1.0, x=-930, y=-740,anchor=NW) + row=0 + entries=[] + for i in range(y_var): + Label(values_form, text = "{}: ".format(d_attr[i].get()), font=('calibre',10),fg='#ffffff',bg='#171717').grid(row=row+1,column=0,padx=(15,10),pady=(10,5)) + #entry=Entry(values_form,textvariable = y[i][j], font=('calibre',10),width=15).grid(row=row+j+1,column=1,padx=(15,10),pady=(10,5)) + entry = Entry(values_form, font=('calibre',10),width=15) + entry.grid(row=row+1,column=1,padx=(15,10),pady=(10,5)) + #entry.insert(0,0) + entries.append(entry) + row = row+1 + row+=1 + plot_btn=Button(values_form,text="Plot",width=10,cursor="hand2") + plot_btn.grid(row=row,column=0,padx=(10,15),pady=10) + plot_btn.configure(command=partial(plot_pie,c,y,d_attr,heading,entries)) + + y_var=y_var.get() + heading=title_var.get() + if y_var>maxLimit: + messagebox.showwarning(message="Too many variables!\nThe maximum limit is 16.") + elif y_var<=0: + messagebox.showwarning(message="No. of variables should be greater than 0.") + else: + for i in range(y_var): + d_attr.append("NA") + d_attr[i]=StringVar() + global values_form + values_form.place_forget() + global names_form + names_form.place_forget() + names_form=customtkinter.CTkScrollableFrame(root, + width=330, + height=480, + label_text="{} Values".format(heading), + border_width=1, + fg_color="#171717", + scrollbar_button_hover_color="#ffffff", + border_color="#000000" + ) + names_form.place(relx=1.0, rely=1.0, x=-1300, y=-555,anchor=NW) + + Label(names_form, text = "Variable Names", font=('calibre',10,"bold"),fg='#ffffff',bg='#171717').grid(row=5,column=0,padx=(15,10),pady=(15,5)) + for i in range(y_var): + Label(names_form, text = "Attribute {}: ".format(i+1), font=('calibre',10),fg='#ffffff',bg='#171717').grid(row=6+i,column=0,padx=(15,10),pady=(10,5)) + Entry(names_form,textvariable = d_attr[i], font=('calibre',10)).grid(row=6+i,column=1,padx=(15,10),pady=(10,5)) + + enter_btn=Button(names_form,text="Enter Values",width=10,cursor="hand2") + enter_btn.grid(row=7+y_var,column=1,padx=(10,15),pady=10) + enter_btn.configure(command=partial(enter_pie_values,c,y)) + + +def plot_pie(c,y,d_attr,heading,entries): + for i in range(len(d_attr)): + d_attr[i]=d_attr[i].get() + plt.style.use('dark_background') + fig, ax=plt.subplots(figsize=(6.5, 5)) + plt.subplots_adjust(bottom=0.152,right=0.81) + for i in entries: + y.append(i.get()) + if c=="pie": + plt.pie(y, labels=d_attr,colors=colors) + plt.legend(bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0) + plt.title(heading) + else: + messagebox.showerror(message="Some error occured.") + return + #plt.savefig("example.png", dpi=1000) + financeTracker.move_figure(fig, 865, 125) + plt.show() + + +def radar_values(c,title_var,x_var,y_var): + def x_no_values(c,y,x_no_value,names_form,x_label): + if x_no_value.get()<3: + messagebox.showwarning(message="No. of values for independent variable should be greater than 2.") + elif x_no_value.get()>maxLimit: + messagebox.showwarning(message="Too many values for independent variable!\nThe maximum limit is 16.") + else: + x_no_value = x_no_value.get() + Label(names_form, text = "For x-axis values", font=('calibre',10,"bold"),fg='#ffffff',bg='#171717').grid(row=5,column=0,padx=(15,10),pady=(15,5)) + global x + x = [StringVar() for _ in range(x_no_value)] + for i in range(x_no_value): + Label(names_form, text = "{} Value {}: ".format(x_label,i+1), font=('calibre',10),fg='#ffffff',bg='#171717').grid(row=6+i,column=0,padx=(15,10),pady=(10,5)) + Entry(names_form,textvariable = x[i], font=('calibre',10)).grid(row=6+i,column=1,padx=(15,10),pady=(10,5)) + nxt_btn=Button(names_form,text="Next",width=10,cursor="hand2") + nxt_btn.grid(row=7+i,column=1,padx=(10,15),pady=10) + nxt_btn.configure(command=partial(y_values,c,x,y,x_no_value,x_label)) + + def y_values(c,x,y,x_no_value,x_label): + global values_1_form + values_1_form.place_forget() + values_1_form=customtkinter.CTkScrollableFrame(root, + width=330, + height=480, + label_text="{} Values".format(heading), + border_width=1, + fg_color="#171717", + scrollbar_button_hover_color="#ffffff", + border_color="#000000" + ) + values_1_form.place(relx=1.0, rely=1.0, x=-1300, y=-555,anchor=NW) + Label(values_1_form, text = "For y-axis", font=('calibre',10,"bold"),fg='#ffffff',bg='#171717').grid(row=0,column=0,padx=(15,10),pady=(15,5)) + d_attr = [StringVar() for _ in range(y_var)] + for i in range(y_var): + Label(values_1_form, text = "Dependent Attribute {}: ".format(i+1), font=('calibre',10),fg='#ffffff',bg='#171717').grid(row=1+i,column=0,padx=(15,10),pady=(10,5)) + Entry(values_1_form,textvariable = d_attr[i], font=('calibre',10)).grid(row=1+i,column=1,padx=(15,10),pady=(10,5)) + + enter_btn=Button(values_1_form,text="Enter Values",width=10,cursor="hand2") + enter_btn.grid(row=2+i,column=1,padx=(10,15),pady=10) + enter_btn.configure(command=partial(enter_values,c,x,y,x_no_value,x_label,d_attr)) + + def enter_values(c,x,y,x_no_value,x_label,d_attr): + for i in range(y_var): + default=[] + for j in range(x_no_value): + default.append(0) + y.append(default) + for i in y: + for j in i: + i=IntVar() + global values_form + values_form.place_forget() + values_form=customtkinter.CTkScrollableFrame(root, + width=350, + height=665, + label_text="Dependent Variable(s) Values", + border_width=1, + fg_color="#171717", + scrollbar_button_hover_color="#ffffff", + border_color="#000000" + ) + values_form.place(relx=1.0, rely=1.0, x=-930, y=-740,anchor=NW) + row=0 + entry_widgets = [] + for i in range(len(y)): + entries=[] + Label(values_form, text = "For {}".format(d_attr[i].get().title()), font=('calibre',10,"bold"),fg='#ffffff',bg='#171717').grid(row=row,column=0,padx=(15,10),pady=(15,5)) + for j in range(len(y[0])): + Label(values_form, text = "{}({}={}): ".format(d_attr[i].get(),x_label,x[j].get()), font=('calibre',10),fg='#ffffff',bg='#171717').grid(row=row+j+1,column=0,padx=(15,10),pady=(10,5)) + entry = Entry(values_form, font=('calibre',10),width=15) + entry.grid(row=row+j+1,column=1,padx=(15,10),pady=(10,5)) + entry.insert(0,0) + entries.append(entry) + row = row+1 + entry_widgets.append(entries) + row+=len(y[0]) + plot_btn=Button(values_form,text="Plot",width=10,cursor="hand2") + plot_btn.grid(row=row,column=0,padx=(10,15),pady=10) + plot_btn.configure(command=partial(plot_radar,c,x,y,d_attr,heading,x_label,x_no_value,entry_widgets)) + + heading=title_var.get() + x_label=x_var.get() + y_var=y_var.get() + + if y_var>maxLimit: + messagebox.showwarning(message="Too many dependent variables!\nThe maximum limit is 16.") + elif y_var<=0: + messagebox.showwarning(message="No. of dependent variables should be greater than 0.") + else: + global names_form + names_form.place_forget() + names_form=customtkinter.CTkScrollableFrame(root, + width=330, + height=480, + label_text="{} Values".format(heading), + border_width=1, + fg_color="#171717", + scrollbar_button_hover_color="#ffffff", + border_color="#000000" + ) + names_form.place(relx=1.0, rely=1.0, x=-1300, y=-555,anchor=NW) + + x_no_value=IntVar() + Label(names_form, text = "For {}".format(x_label), font=('calibre',10,"bold"),fg='#ffffff',bg='#171717').grid(row=0,column=0,padx=(15,10),pady=(15,5)) + x_no_value_label = Label(names_form, text = "{} Number of values: ".format(x_label), font=('calibre',10),fg='#ffffff',bg='#171717') + x_no_value_entry = Entry(names_form,textvariable = x_no_value, font=('calibre',10)) + + x_no_value_label.grid(row=1,column=0,padx=(15,10),pady=(10,5)) + x_no_value_entry.grid(row=1,column=1,padx=(10,15),pady=5) + + next_btn=Button(names_form,text="Next",width=10,cursor="hand2") + next_btn.grid(row=4,column=1,padx=(10,15),pady=10) + next_btn.configure(command=partial(x_no_values,c,y,x_no_value,names_form,x_label)) + +def plot_radar(c,x,y,d_attr,heading,x_label,x_no_value,entry_widgets): + for i in range(len(entry_widgets)): + y[i]=[float(entry.get()) for entry in entry_widgets[i]] + for i in range(len(x)): + x[i] = x[i].get() + for i in range(len(d_attr)): + d_attr[i]=d_attr[i].get() + plt.style.use('dark_background') + fig, ax=plt.subplots(figsize=(6.5, 5)) + plt.subplots_adjust(bottom=0.152,right=0.81) + # obtaining angles + angles = np.linspace(0,2*np.pi,len(x),endpoint=False) + # concatenate & append to complete circle + angles = np.concatenate((angles,[angles[0]])) + x_chart_labels = x[:] + x.append(x[0]) + for i in range(len(y)): + y[i].append(y[i][0]) + ax = fig.add_subplot(polar=True) + for i in range(len(d_attr)): + ax.plot(angles,y[i],'o-',color=colors[i],linewidth=2,label=d_attr[i]) + ax.fill(angles,y[i],alpha=0.25,color=colors[i]) + plt.xticks(angles[:-1],x_chart_labels) + plt.tight_layout() + plt.legend(bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0) + plt.title(heading) + financeTracker.move_figure(fig, 865, 125) + plt.show() + + +def scatter(c): + if c=="scatter3d": + global form + form.pack_forget() + form=Frame(root,bg="#171717",relief=SUNKEN) + form.pack(side=LEFT,pady=20,padx=20,anchor=NW) + global title + title.pack_forget() + title_var=StringVar() + x_var=StringVar() + y_var=StringVar() + z_var=StringVar() + no_values_var=IntVar() # Number of values variable + title_label = Label(form, text = 'Title: ', font=('calibre',10),fg='#ffffff',bg='#171717') + title_entry = Entry(form,textvariable = title_var, font=('calibre',10)) + x_label = Label(form, text = 'Name of Dependent Variable(x): ', font = ('calibre',10),fg='#ffffff',bg='#171717') + x_entry=Entry(form, textvariable = x_var, font = ('calibre',10)) + y_label = Label(form, text = 'Name of Dependent Variable(y): ', font = ('calibre',10),fg='#ffffff',bg='#171717') + y_entry=Entry(form, textvariable = y_var, font = ('calibre',10)) + z_label = Label(form, text = 'Name of Dependent Variable(z): ', font = ('calibre',10),fg='#ffffff',bg='#171717') + z_entry=Entry(form, textvariable = z_var, font = ('calibre',10)) + no_values_label=Label(form, text = 'Number of Values to Plot: ', font = ('calibre',10),fg='#ffffff',bg='#171717') + no_values_entry=Entry(form, textvariable = no_values_var, font = ('calibre',10)) + + title_entry.insert(0,'Untitled') + x_entry.insert(0,'x') + y_entry.insert(0,'y') + z_entry.insert(0,'z') + + title_label.grid(row=0,column=0,padx=(5,5),pady=(15,5)) + title_entry.grid(row=0,column=1,padx=(0,10),pady=(15,5)) + x_label.grid(row=1,column=0,padx=(5,5),pady=5) + x_entry.grid(row=1,column=1,padx=(0,10),pady=5) + y_label.grid(row=2,column=0,padx=(5,5),pady=5) + y_entry.grid(row=2,column=1,padx=(0,10),pady=5) + z_label.grid(row=3,column=0,padx=(5,5),pady=5) + z_entry.grid(row=3,column=1,padx=(0,10),pady=5) + no_values_label.grid(row=4,column=0,padx=(5,5),pady=5) + no_values_entry.grid(row=4,column=1,padx=(0,10),pady=5) + sub_btn=Button(form,text="Create",width=10,cursor="hand2") + sub_btn.grid(row=5,column=1,padx=(10,15),pady=(15,15)) + sub_btn.configure(command=partial(scatter_enter_values,c,title_var,x_var,y_var,z_var,no_values_var)) + + form.mainloop() + +def scatter_enter_values(c,title_var,x_var,y_var,z_var,no_values_var): + heading=title_var.get() + x_label=x_var.get() + y_label=y_var.get() + z_label=z_var.get() + no_values=no_values_var.get() + + if no_values>maxLimit: + messagebox.showwarning(message="Too many values to plot!\nThe maximum limit is 16.") + elif no_values<=0: + messagebox.showwarning(message="No. of values to plot should be greater than 0.") + else: + x=[] + y=[] + z=[] + for i in range(no_values): + x.append(0) + y.append(0) + z.append(0) + x[i]=IntVar() + y[i]=IntVar() + z[i]=IntVar() + + global values_form + values_form.place_forget() + values_form=customtkinter.CTkScrollableFrame(root, + width=800, + height=665, + label_text="Variable(s) Values", + border_width=1, + fg_color="#171717", + scrollbar_button_hover_color="#ffffff", + border_color="#000000" + ) + values_form.place(relx=1.0, rely=1.0, x=-930, y=-740,anchor=NW) + + Label(values_form, text = "Variable Values", font=('calibre',10,"bold"),fg='#ffffff',bg='#171717').grid(row=0,column=0,padx=(12,8),pady=(12,4)) + for i in range(no_values): + Label(values_form, text = "Value {}: ".format(i+1), font=('calibre',10),fg='#ffffff',bg='#171717').grid(row=1+i,column=0,padx=(12,8),pady=(8,4)) + Label(values_form, text = "{} =".format(x_label), font=('calibre',10),fg='#ffffff',bg='#171717').grid(row=1+i,column=1,padx=(12,8),pady=(8,4)) + Entry(values_form,textvariable = x[i], font=('calibre',10)).grid(row=1+i,column=2,padx=(12,8),pady=(8,4)) + Label(values_form, text = "{} =".format(y_label), font=('calibre',10),fg='#ffffff',bg='#171717').grid(row=1+i,column=3,padx=(12,8),pady=(8,4)) + Entry(values_form,textvariable = y[i], font=('calibre',10)).grid(row=1+i,column=4,padx=(12,8),pady=(8,4)) + Label(values_form, text = "{} =".format(z_label), font=('calibre',10),fg='#ffffff',bg='#171717').grid(row=1+i,column=5,padx=(12,8),pady=(8,4)) + Entry(values_form,textvariable = z[i], font=('calibre',10)).grid(row=1+i,column=6,padx=(12,8),pady=(8,4)) + plot_btn=Button(values_form,text="Plot",width=10,cursor="hand2") + plot_btn.grid(row=no_values+1,column=0,padx=(10,15),pady=10) + plot_btn.configure(command=partial(plot_scatter,c,x,y,z,x_label,y_label,z_label,heading,no_values)) + +def plot_scatter(c,x,y,z,x_label,y_label,z_label,heading,no_values): + for i in range(no_values): + x[i]=float(x[i].get()) + y[i]=float(y[i].get()) + z[i]=float(z[i].get()) + plt.style.use('dark_background') + fig, ax=plt.subplots(figsize=(6.5, 5)) + plt.subplots_adjust(bottom=0.152,right=0.81) + ax = fig.add_subplot(projection="3d") + scatter = ax.scatter(x,y,z,marker='o',c=z,cmap="viridis",alpha=0.5,s=60) # color map based on z + fig.colorbar(scatter, ax=ax, shrink=0.5, aspect=5,location="left") + ax.set_xlabel(x_label) + ax.set_ylabel(y_label) + ax.set_zlabel(z_label) + # plt.legend(bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0) + plt.tight_layout() + plt.title(heading) + financeTracker.move_figure(fig, 865, 125) + plt.show() + +def heatmap(c): + if c=="heatmap": + global form + form.pack_forget() + form=Frame(root,bg="#171717",relief=SUNKEN) + form.pack(side=LEFT,pady=20,padx=20,anchor=NW) + global title + title.pack_forget() + title_var=StringVar() + x_var=StringVar() # independent var 1 + y_var=StringVar() # independent var 2 + d_var=StringVar() # dependent var + title_label = Label(form, text = 'Title: ', font=('calibre',10),fg='#ffffff',bg='#171717') + title_entry = Entry(form,textvariable = title_var, font=('calibre',10)) + x_label = Label(form, text = 'Name of Independent Variable(x): ', font = ('calibre',10),fg='#ffffff',bg='#171717') + x_entry=Entry(form, textvariable = x_var, font = ('calibre',10)) + y_label = Label(form, text = 'Name of Independent Variable(y): ', font = ('calibre',10),fg='#ffffff',bg='#171717') + y_entry=Entry(form, textvariable = y_var, font = ('calibre',10)) + d_label = Label(form, text = 'Name of Dependent Variable: ', font = ('calibre',10),fg='#ffffff',bg='#171717') + d_entry=Entry(form, textvariable = d_var, font = ('calibre',10)) + + title_entry.insert(0,'Untitled') + x_entry.insert(0,'x') + y_entry.insert(0,'y') + d_entry.insert(0,'d') + + title_label.grid(row=0,column=0,padx=(5,5),pady=(15,5)) + title_entry.grid(row=0,column=1,padx=(0,10),pady=(15,5)) + x_label.grid(row=1,column=0,padx=(5,5),pady=5) + x_entry.grid(row=1,column=1,padx=(0,10),pady=5) + y_label.grid(row=2,column=0,padx=(5,5),pady=5) + y_entry.grid(row=2,column=1,padx=(0,10),pady=5) + d_label.grid(row=3,column=0,padx=(5,5),pady=5) + d_entry.grid(row=3,column=1,padx=(0,10),pady=5) + sub_btn=Button(form,text="Create",width=10,cursor="hand2") + sub_btn.grid(row=5,column=1,padx=(10,15),pady=(15,15)) + sub_btn.configure(command=partial(heatmap_values,c,title_var,x_var,y_var,d_var)) + + form.mainloop() + +def heatmap_values(c,title_var,x_var,y_var,d_var): + def x_value(c,names_form,x_values,x_label): + x_values=x_values.get() + + if x_values>maxLimit: + messagebox.showwarning(message="Too many values for independent variable!\nThe maximum limit is 16.") + elif x_values<=0: + messagebox.showwarning(message="No. of values for independent variable should be greater than 0.") + else: + Label(names_form, text = "For x values", font=('calibre',10,"bold"),fg='#ffffff',bg='#171717').grid(row=4,column=0,padx=(15,10),pady=(15,5)) + global x + x = [StringVar() for _ in range(x_values)] + for i in range(x_values): + Label(names_form, text = "{} Value {}: ".format(x_label,i+1), font=('calibre',10),fg='#ffffff',bg='#171717').grid(row=5+i,column=0,padx=(15,10),pady=(10,5)) + Entry(names_form,textvariable = x[i], font=('calibre',10)).grid(row=5+i,column=1,padx=(15,10),pady=(10,5)) + nxt_btn=Button(names_form,text="Next",width=10,cursor="hand2") + nxt_btn.grid(row=6+i,column=1,padx=(10,15),pady=10) + nxt_btn.configure(command=partial(y_values,c,y_var)) + + def y_values(c,y_var): + global values_form + values_form.place_forget() + values_form=customtkinter.CTkScrollableFrame(root, + width=330, + height=480, + label_text="{} Values".format(y_var.get()), + border_width=1, + fg_color="#171717", + scrollbar_button_hover_color="#ffffff", + border_color="#000000" + ) + values_form.place(relx=1.0, rely=1.0, x=-1300, y=-555,anchor=NW) + + y_label=y_var.get() + y_values=IntVar() + Label(values_form, text = "For {}".format(y_label), font=('calibre',10,"bold"),fg='#ffffff',bg='#171717').grid(row=0,column=0,padx=(15,10),pady=(15,5)) + y_values_label = Label(values_form, text = "{} Number of Value(s): ".format(y_label), font=('calibre',10),fg='#ffffff',bg='#171717') + y_values_entry = Entry(values_form,textvariable = y_values, font=('calibre',10)) + + y_values_label.grid(row=1,column=0,padx=(15,10),pady=(10,5)) + y_values_entry.grid(row=1,column=1,padx=(10,15),pady=5) + + next_btn=Button(values_form,text="Next",width=10,cursor="hand2") + next_btn.grid(row=3,column=1,padx=(10,15),pady=10) + next_btn.configure(command=partial(y_values1,c,values_form,y_values,y_label)) + + def y_values1(c,values_form,y_values,y_label): + y_values=y_values.get() + + if y_values>maxLimit: + messagebox.showwarning(message="Too many values for independent variable!\nThe maximum limit is 16.") + elif y_values<=0: + messagebox.showwarning(message="No. of values for independent variable should be greater than 0.") + else: + Label(values_form, text = "For y values", font=('calibre',10,"bold"),fg='#ffffff',bg='#171717').grid(row=4,column=0,padx=(15,10),pady=(15,5)) + global y + y = [StringVar() for _ in range(y_values)] + for i in range(y_values): + Label(values_form, text = "{} Value {}: ".format(y_label,i+1), font=('calibre',10),fg='#ffffff',bg='#171717').grid(row=5+i,column=0,padx=(15,10),pady=(10,5)) + Entry(values_form,textvariable = y[i], font=('calibre',10)).grid(row=5+i,column=1,padx=(15,10),pady=(10,5)) + nxt_btn=Button(values_form,text="Next",width=10,cursor="hand2") + nxt_btn.grid(row=6+i,column=1,padx=(10,15),pady=10) + nxt_btn.configure(command=partial(heatmap_enter_values,c,x_values,y_values,x_var,y_label,d_var,x,y,title_var)) + + def heatmap_enter_values(c,x_values,y_values,x_var,y_label,d_var,x,y,title_var): + global d_attr + for i in range(x_values.get()): + default=[] + for j in range(y_values): + default.append(0) + d_attr.append(default) + for i in d_attr: + for j in i: + i = IntVar() + global values_1_form + values_1_form.place_forget() + values_1_form=customtkinter.CTkScrollableFrame(root, + width=350, + height=665, + label_text="Dependent Variable Values", + border_width=1, + fg_color="#171717", + scrollbar_button_hover_color="#ffffff", + border_color="#000000" + ) + values_1_form.place(relx=1.0, rely=1.0, x=-930, y=-740,anchor=NW) + entry_widgets = [] + x_label = x_var.get() + heading = title_var.get() + row = 0 + Label(values_1_form, text = "For {}".format(d_var.get()), font=('calibre',10,"bold"),fg='#ffffff',bg='#171717').grid(row=row,column=0,padx=(15,10),pady=(15,5)) + for i in range(len(d_attr)): + entries=[] + for j in range(len(d_attr[0])): + Label(values_1_form, text = "{}={},{}={}: ".format(x_label,x[i].get(),y_label,y[j].get()), font=('calibre',10),fg='#ffffff',bg='#171717').grid(row=row+j+1,column=0,padx=(15,10),pady=(10,5)) + entry = Entry(values_1_form, font=('calibre',10),width=15) + entry.grid(row=row+j+1,column=1,padx=(15,10),pady=(10,5)) + entry.insert(0,0) + entries.append(entry) + row = row+1 + entry_widgets.append(entries) + row+=len(d_attr[0]) + plot_btn=Button(values_1_form,text="Plot",width=10,cursor="hand2") + plot_btn.grid(row=row,column=0,padx=(10,15),pady=10) + plot_btn.configure(command=partial(plot_heatmap,c,x_values,y_values,x_label,y_label,d_var,d_attr,entry_widgets,heading)) + + global names_form + names_form.place_forget() + names_form=customtkinter.CTkScrollableFrame(root, + width=330, + height=480, + label_text="{} Values".format(x_var.get()), + border_width=1, + fg_color="#171717", + scrollbar_button_hover_color="#ffffff", + border_color="#000000" + ) + names_form.place(relx=1.0, rely=1.0, x=-1300, y=-555,anchor=NW) + + x_label=x_var.get() + x_values=IntVar() + Label(names_form, text = "For {}".format(x_label), font=('calibre',10,"bold"),fg='#ffffff',bg='#171717').grid(row=0,column=0,padx=(15,10),pady=(15,5)) + x_values_label = Label(names_form, text = "{} Number of Value(s): ".format(x_label), font=('calibre',10),fg='#ffffff',bg='#171717') + x_values_entry = Entry(names_form,textvariable = x_values, font=('calibre',10)) + + x_values_label.grid(row=1,column=0,padx=(15,10),pady=(10,5)) + x_values_entry.grid(row=1,column=1,padx=(10,15),pady=5) + + next_btn=Button(names_form,text="Next",width=10,cursor="hand2") + next_btn.grid(row=3,column=1,padx=(10,15),pady=10) + next_btn.configure(command=partial(x_value,c,names_form,x_values,x_label)) + +def plot_heatmap(c,x_values,y_values,x_label,y_label,d_var,d_attr,entry_widgets,heading): + d_attr = np.array([np.array([float(entry.get()) for entry in entry_widgets[i]]) for i in range(len(entry_widgets))]) + for i in range(len(x)): + x[i] = x[i].get() + for i in range(len(y)): + y[i] = y[i].get() + plt.style.use('dark_background') + fig, ax=plt.subplots(figsize=(6.5, 5)) + plt.subplots_adjust(bottom=0.152,right=0.81) + im = ax.imshow(d_attr,cmap="viridis") + cbarlabel = d_var.get() + cbar = ax.figure.colorbar(im,ax=ax) + cbar.ax.set_ylabel(cbarlabel, rotation=-90, va="bottom") + ax.set_xticks(np.arange(len(x)), labels=x) + ax.set_yticks(np.arange(len(y)), labels=y) + # rotating y_labels + plt.setp(ax.get_yticklabels(), rotation=45, ha="right",rotation_mode="anchor") + for i in range(len(x)): + for j in range(len(y)): + text = ax.text(i,j, d_attr[i, j],ha="center", va="center", color="w") + plt.tight_layout() + plt.legend(bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0) + plt.title(heading) + financeTracker.move_figure(fig, 865, 125) + plt.show() +#===========================================================================================================MAIN +def main(): + global relation + relation.pack_forget() + global form + form.pack_forget() + global title + title.pack_forget() + global menu + menu.pack_forget() + global text + text.pack_forget() + global names_form + names_form.place_forget() + global values_form + values_form.place_forget() + global values_1_form + values_1_form.place_forget() + menu=Frame(root,bg="#171717",relief=SUNKEN) + menu.pack(side=LEFT,fill=Y) + + text = tk.Text(root, wrap="word",fg="#e8e8e8",bg="#000000",padx=15,pady=15,font="consolas 12",relief="flat") +# Insert some text into the Text widget + text.insert("end", '''Welcome to Dataverse!\n +We’re excited to have you onboard! Dataverse is your go-to platform for seamless data visualization and efficient financial tracking, built to simplify your workflow and make data handling effortless.\n\nData Visualization +Easily transform raw data into visually appealing charts such as bar graphs, pie charts, and line graphs. It also supports advanced data visualisation techniques like heatmaps, Radar charts, 3D Surface Plots, etc. + +You can also download the generated plots for later use.\n\n +Finance Tracking +Managing finances has never been easier! Dataverse’s finance tracking features allow you to monitor expenses, manage income and generate insightful reports. With detailed financial data at your fingertips, you can download and review reports whenever you need, keeping your finances organized and accessible.\n\n\n\n\n\n\n<--- You can visit our website to know more :)''') + text.pack(pady=20,padx=40,side=TOP,anchor=W,fill=BOTH) + + #version = tk.Text(root, wrap="word",fg="#e8e8e8",bg="#000000",padx=15,pady=15,font="consolas 8",relief="flat") + #version.insert("end","Current Version: 05.10.2024\nDesigned by Tejas 2023") + #version.pack(pady=80,padx=40,side=TOP,anchor=W,fill=Y) + + image = Image.open("software/images/preview.png") + resize_image = image.resize((650, 370)) + preview = ImageTk.PhotoImage(resize_image) + preview_image=Label(bg='#000000',image = preview, borderwidth=1, relief="solid",padx=15,pady=15) + preview_image.place(relx=1.0, rely=1.0, x=-40, y=-40,anchor="se") + + +#====================================================================== adding images to buttons + def resize_image(image_path, width=20, height=20): + image = Image.open(image_path) + image = image.resize((width, height), Image.Resampling.LANCZOS) + return ImageTk.PhotoImage(image) + + user = resize_image("software/images/user.png", 20) + visualization = resize_image("software/images/visualization.png", 20) + finance = resize_image("software/images/finance.png", 20) + delete_user = resize_image("software/images/delete-user.png", 20) + + + b1=Button(menu,fg='#ffffff',bg='#1a1a1a',image=visualization,text="Data Visualisation",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + b2=Button(menu,fg='#ffffff',bg='#1a1a1a',image=finance,text="Finance Tracker",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + b3=Button(menu,fg='#ffffff',bg='#1a1a1a',image=user,text="Create Account",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + b4=Button(menu,fg='#ffffff',bg='#1a1a1a',image=delete_user,text="Delete Account",compound='left',width=170,anchor='w',font="poppins 10",cursor="hand2",padx=10) + + b1.image = visualization + b2.image = finance + b3.image = user + b4.image = delete_user + + b1.pack(pady=(30,5),padx=15) + b2.pack(pady=5,padx=15) + b3.pack(pady=5,padx=15) + b4.pack(pady=5,padx=15) + b1.config(command=partial(guest,b1,b2,b3,b4,preview_image)) + b2.config(command=partial(login,b2,b1,b3,b4,preview_image)) + b3.config(command=partial(create,b3,b1,b2,b4,preview_image)) + b4.config(command=partial(delete,b4,b1,b2,b3,preview_image)) + + # adding version label to the home page + version_text = "Version : 6550(24) Latest" + version_label = Label(menu, text=version_text, font="poppins 10 bold", fg="#ffffff", bg="#171717") + version_label.pack(side=BOTTOM, anchor="w", padx=10, pady=10) + + link1 = Label(menu,fg='#ffffff',bg='#1a1a1a',text="Visit Website",width=22,cursor="hand2",font="poppins 10", relief="sunken") + link1.pack(pady=280,padx=15) + link1.bind("", lambda e: callback("https://multiverse-dataverse.netlify.app/")) + + root.mainloop() + +def dark(window): + window.update() + set_window_attribute = ct.windll.dwmapi.DwmSetWindowAttribute + get_parent = ct.windll.user32.GetParent + hwnd = get_parent(window.winfo_id()) + value = 2 + value = ct.c_int(value) + set_window_attribute(hwnd, 20, ct.byref(value), + 4) + +#===============================================================GUI +root=Tk() +#root.config(borderwidth=2, bordercolor='red') +root.geometry("1100x700") +root.title("Dataverse") +root.minsize(600,300) + +bg=Image.open('software/images/background.png') + +# Resize the image in the given (width, height) +img=bg.resize((1400,860)) + +# Conver the image in TkImage +my_img=ImageTk.PhotoImage(img) +# Show image using label +label1 = Label( root, image = my_img) +label1.place(x = 200, y = 0) + +dark(root) +photo = PhotoImage(file = "software/images/2dlogo.png") +root.iconphoto(False, photo) +root.configure(bg="black") +top=Frame(root,bg="#1a1a1a",width=100) +title=Label(top,font="Courier 15 bold",fg='#ffffff',bg='#1a1a1a',text="Dataverse") +title.grid(row = 0, column = 1,padx=0,pady=(20,10)) +top.pack(side=TOP,fill=X) +image = Image.open("software/images/3dlogo.png") +resize_image = image.resize((50, 50)) +logo = ImageTk.PhotoImage(resize_image) +label = Label(top,bg='#1a1a1a',image = logo) +label.grid(row = 0, column = 0,padx=(15,20),pady=(20,10)) + + +text=Label(font="poppins 10 bold",fg='#ffffff',bg='#000000',text="") +text.pack(fill=X,pady=35,padx=(0,200)) +form=Frame(root,bg="#171717",relief=SUNKEN) +form.pack(side=TOP,fill=Y,pady=0,padx=(0,0)) +names_form=Frame(root,bg="#171717",relief=SUNKEN) +names_form.place(relx=1.0, rely=1.0, x=-1300, y=-555,anchor=NW) +values_form=Frame(root,bg="#171717",relief=SUNKEN) +values_form.place(relx=1.0, rely=1.0, x=-1300, y=-555,anchor=NW) +values_1_form=Frame(root,bg="#171717",relief=SUNKEN) +values_1_form.place(relx=1.0, rely=1.0, x=-1300, y=-555,anchor=NW) +relation=customtkinter.CTkScrollableFrame(root,width=0,height=0,border_width=0,fg_color="#000000",scrollbar_button_hover_color="#000000",scrollbar_button_color="#000000") +relation.pack(side=RIGHT) +menu=Frame(root,bg="#171717",relief=SUNKEN) +menu.pack(side=LEFT,fill=Y) +main() +mycon.close() \ No newline at end of file