|
|
from Matlib import *
|
|
|
from tkinter import *
|
|
|
from tkintertable import TableCanvas, TableModel
|
|
|
from tkinter import ttk
|
|
|
|
|
|
#l=-180
|
|
|
#r=360
|
|
|
#a=2
|
|
|
#den=30
|
|
|
#dis=0
|
|
|
|
|
|
#PolylineG1(l,r,den,a,dis)
|
|
|
#x=[1,2,3,4,5]
|
|
|
#y=[2,-1,-4,3,1]
|
|
|
#BarG(x,y)
|
|
|
#Sine(l,r,50,dis)
|
|
|
#x=[1,2,3,4,5,6]
|
|
|
#y=['s','e','r','t','f','g']
|
|
|
#data=pd.DataFrame(x,y)
|
|
|
|
|
|
|
|
|
#data.plot.bar(x=data.get(x),y=data.get(y),color='blue')
|
|
|
#plt.show()
|
|
|
|
|
|
def Functionmain():
|
|
|
def PolylineG1main():
|
|
|
root1_1.destroy()
|
|
|
def G1Creat():
|
|
|
PolylineG1(int(eXRangeL.get()),int(eXRangeR.get()),int(eDen.get()),int(eA.get()),int(eDis.get()))
|
|
|
|
|
|
def back():
|
|
|
root1_1_1.destroy()
|
|
|
Functionmain()
|
|
|
|
|
|
root1_1_1 = Frame(root, width=960, height=540)
|
|
|
root1_1_1.pack()
|
|
|
FunNameLaber=Label(root1_1_1,text='',font=('微软雅黑 ',12))
|
|
|
FunNameLaber.place(x=200,y=50)
|
|
|
#函数公式部分
|
|
|
yLaber=Label(root1_1_1,text='y = ',font=('Arial',30))
|
|
|
yLaber.place(x=280,y=90)
|
|
|
eA=Entry(root1_1_1,width=7)
|
|
|
eA.place(x=340,y=110)
|
|
|
XLaber = Label(root1_1_1, text='x', font=('Arial', 30))
|
|
|
XLaber.place(x=395,y=90)
|
|
|
opLaber=Label(root1_1_1, text=' + ', font=('Arial', 30))
|
|
|
opLaber.place(x=420,y=95)
|
|
|
eDis=Entry(root1_1_1,width=7)
|
|
|
eDis.place(x=490,y=110)
|
|
|
|
|
|
#样本数
|
|
|
DenLaber=Label(root1_1_1,text='样本数',font=('Arial',30))
|
|
|
DenLaber.place(x=280,y=180)
|
|
|
eDen=Entry(root1_1_1,width=7)
|
|
|
eDen.place(x=410,y=200)
|
|
|
|
|
|
#取值范围
|
|
|
XRangeLaber=Label(root1_1_1,text='取值范围',font=('Arial',30))
|
|
|
XRangeLaber.place(x=280,y=270)
|
|
|
Xleft=Label(root1_1_1,text='left',font=('Arial',30))
|
|
|
Xleft.place(x=460,y=270)
|
|
|
eXRangeL=Entry(root1_1_1,width=7)
|
|
|
eXRangeL.place(x=530,y=290)
|
|
|
XRigt=Label(root1_1_1,text='rigt',font=('Arial',30))
|
|
|
XRigt.place(x=600,y=270)
|
|
|
eXRangeR = Entry(root1_1_1, width=7)
|
|
|
eXRangeR.place(x=670, y=290)
|
|
|
|
|
|
#生成
|
|
|
b_Creat=Button(root1_1_1,text='生成',command=G1Creat)
|
|
|
b_Creat.place(x=320,y=400,width=90, height=60)
|
|
|
|
|
|
#返回
|
|
|
b_back = Button(root1_1_1, text='返 回', command=back)
|
|
|
b_back.place(x=910, y=10, width=30, height=20)
|
|
|
|
|
|
|
|
|
def PolylineG2main():
|
|
|
root1_1.destroy()
|
|
|
|
|
|
def G2Creat():
|
|
|
PolylineG2(int(eXRangeL.get()),int(eXRangeR.get()),int(eDen.get()),int(eA.get()),int(eB.get()),int(eDis.get()))
|
|
|
def back():
|
|
|
root1_1_2.destroy()
|
|
|
Functionmain()
|
|
|
|
|
|
root1_1_2 = Frame(root, width=960, height=540)
|
|
|
root1_1_2.pack()
|
|
|
FunNameLaber = Label(root1_1_2, text='', font=('微软雅黑 ', 12))
|
|
|
FunNameLaber.place(x=200, y=50)
|
|
|
# 函数公式部分
|
|
|
yLaber = Label(root1_1_2, text='y = ', font=('Arial', 30))
|
|
|
yLaber.place(x=280, y=90)
|
|
|
eA = Entry(root1_1_2, width=7)
|
|
|
eA.place(x=340, y=110)
|
|
|
XSLaber = Label(root1_1_2, text='x^2', font=('Arial', 30))
|
|
|
XSLaber.place(x=395, y=90)
|
|
|
opLaber1 = Label(root1_1_2, text=' + ', font=('Arial', 30))
|
|
|
opLaber1.place(x=460, y=95)
|
|
|
eB = Entry(root1_1_2, width=7)
|
|
|
eB.place(x=520, y=110)
|
|
|
XLaber2=Label(root1_1_2, text='x', font=('Arial', 30))
|
|
|
XLaber2.place(x=575, y=90)
|
|
|
opLaber = Label(root1_1_2, text=' + ', font=('Arial', 30))
|
|
|
opLaber.place(x=610, y=95)
|
|
|
eDis=Entry(root1_1_2, width=7)
|
|
|
eDis.place(x=680, y=110)
|
|
|
|
|
|
# 样本数
|
|
|
DenLaber = Label(root1_1_2, text='样本数', font=('Arial', 30))
|
|
|
DenLaber.place(x=280, y=180)
|
|
|
eDen = Entry(root1_1_2, width=7)
|
|
|
eDen.place(x=410, y=200)
|
|
|
|
|
|
# 取值范围
|
|
|
XRangeLaber = Label(root1_1_2, text='取值范围', font=('Arial', 30))
|
|
|
XRangeLaber.place(x=280, y=270)
|
|
|
Xleft = Label(root1_1_2, text='left', font=('Arial', 30))
|
|
|
Xleft.place(x=460, y=270)
|
|
|
eXRangeL = Entry(root1_1_2, width=7)
|
|
|
eXRangeL.place(x=530, y=290)
|
|
|
XRigt = Label(root1_1_2, text='rigt', font=('Arial', 30))
|
|
|
XRigt.place(x=600, y=270)
|
|
|
eXRangeR = Entry(root1_1_2, width=7)
|
|
|
eXRangeR.place(x=670, y=290)
|
|
|
|
|
|
# 生成
|
|
|
b_Creat = Button(root1_1_2, text='生成', command=G2Creat)
|
|
|
b_Creat.place(x=320, y=400, width=90, height=60)
|
|
|
|
|
|
#返回
|
|
|
b_back = Button(root1_1_2, text='返 回', command=back)
|
|
|
b_back.place(x=910, y=10, width=30, height=20)
|
|
|
|
|
|
def PolylineG3main():
|
|
|
root1_1.destroy()
|
|
|
def G3Creat():
|
|
|
PolylineG3(int(eXRangeL.get()),int(eXRangeR.get()),int(eDen.get()),int(eA.get()),int(eB.get()),int(eD.get()),int(eDis.get()))
|
|
|
def back():
|
|
|
root1_1_3.destroy()
|
|
|
Functionmain()
|
|
|
|
|
|
root1_1_3 = Frame(root, width=960, height=540)
|
|
|
root1_1_3.pack()
|
|
|
FunNameLaber = Label(root1_1_3, text='', font=('微软雅黑 ', 12))
|
|
|
FunNameLaber.place(x=200, y=50)
|
|
|
# 函数公式部分
|
|
|
yLaber = Label(root1_1_3, text='y = ', font=('Arial', 30))
|
|
|
yLaber.place(x=280, y=90)
|
|
|
eA = Entry(root1_1_3, width=7)
|
|
|
eA.place(x=340, y=110)
|
|
|
XCLaber = Label(root1_1_3, text='x^3', font=('Arial', 30))
|
|
|
XCLaber.place(x=395, y=90)
|
|
|
opLaber1 = Label(root1_1_3, text=' + ', font=('Arial', 30))
|
|
|
opLaber1.place(x=460, y=95)
|
|
|
eB = Entry(root1_1_3, width=7)
|
|
|
eB.place(x=520, y=110)
|
|
|
XSLaber = Label(root1_1_3, text='x^2', font=('Arial', 30))
|
|
|
XSLaber.place(x=575, y=90)
|
|
|
opLaber2 = Label(root1_1_3, text=' + ', font=('Arial', 30))
|
|
|
opLaber2.place(x=640, y=95)
|
|
|
eD=Entry(root1_1_3, width=7)
|
|
|
eD.place(x=700, y=110)
|
|
|
XLaber2 = Label(root1_1_3, text='x', font=('Arial', 30))
|
|
|
XLaber2.place(x=760, y=90)
|
|
|
opLaber3 = Label(root1_1_3, text=' + ', font=('Arial', 30))
|
|
|
opLaber3.place(x=790, y=95)
|
|
|
eDis = Entry(root1_1_3, width=7)
|
|
|
eDis.place(x=840, y=110)
|
|
|
|
|
|
# 样本数
|
|
|
DenLaber = Label(root1_1_3, text='样本数', font=('Arial', 30))
|
|
|
DenLaber.place(x=280, y=180)
|
|
|
eDen = Entry(root1_1_3, width=7)
|
|
|
eDen.place(x=410, y=200)
|
|
|
|
|
|
# 取值范围
|
|
|
XRangeLaber = Label(root1_1_3, text='取值范围', font=('Arial', 30))
|
|
|
XRangeLaber.place(x=280, y=270)
|
|
|
Xleft = Label(root1_1_3, text='left', font=('Arial', 30))
|
|
|
Xleft.place(x=460, y=270)
|
|
|
eXRangeL = Entry(root1_1_3, width=7)
|
|
|
eXRangeL.place(x=530, y=290)
|
|
|
XRigt = Label(root1_1_3, text='rigt', font=('Arial', 30))
|
|
|
XRigt.place(x=600, y=270)
|
|
|
eXRangeR = Entry(root1_1_3, width=7)
|
|
|
eXRangeR.place(x=670, y=290)
|
|
|
|
|
|
# 生成
|
|
|
b_Creat = Button(root1_1_3, text='生成', command=G3Creat)
|
|
|
b_Creat.place(x=320, y=400, width=90, height=60)
|
|
|
|
|
|
|
|
|
b_back = Button(root1_1_3, text='返 回', command=back)
|
|
|
b_back.place(x=910, y=10, width=30, height=20)
|
|
|
|
|
|
def Sinemain():
|
|
|
root1_1.destroy()
|
|
|
def G4Creat():
|
|
|
Sine(int(eXRangeL.get()),int(eXRangeR.get()),int(eDen.get()),int(eDis.get()))
|
|
|
|
|
|
def back():
|
|
|
root1_1_4.destroy()
|
|
|
Functionmain()
|
|
|
|
|
|
root1_1_4 = Frame(root, width=960, height=540)
|
|
|
root1_1_4.pack()
|
|
|
FunNameLaber = Label(root1_1_4, text='', font=('微软雅黑 ', 12))
|
|
|
FunNameLaber.place(x=200, y=50)
|
|
|
# 函数公式部分
|
|
|
yLaber = Label(root1_1_4, text='y = ', font=('Arial', 30))
|
|
|
yLaber.place(x=280, y=90)
|
|
|
|
|
|
XLaber = Label(root1_1_4, text='sin(', font=('Arial', 30))
|
|
|
XLaber.place(x=350, y=90)
|
|
|
eDis = Entry(root1_1_4, width=7)
|
|
|
eDis.place(x=420, y=110)
|
|
|
opLaber1 = Label(root1_1_4, text='度', font=('Arial', 30))
|
|
|
opLaber1.place(x=470, y=95)
|
|
|
opLaberc = Label(root1_1_4, text=' + ', font=('Arial', 30))
|
|
|
opLaberc.place(x=520, y=95)
|
|
|
opLaber2 = Label(root1_1_4, text='x)', font=('Arial', 30))
|
|
|
opLaber2.place(x=570, y=90)
|
|
|
|
|
|
# 样本数
|
|
|
DenLaber = Label(root1_1_4, text='样本数', font=('Arial', 30))
|
|
|
DenLaber.place(x=280, y=180)
|
|
|
eDen = Entry(root1_1_4, width=7)
|
|
|
eDen.place(x=410, y=200)
|
|
|
|
|
|
# 取值范围
|
|
|
XRangeLaber = Label(root1_1_4, text='取值范围', font=('Arial', 30))
|
|
|
XRangeLaber.place(x=280, y=270)
|
|
|
Xleft = Label(root1_1_4, text='left', font=('Arial', 30))
|
|
|
Xleft.place(x=460, y=270)
|
|
|
eXRangeL = Entry(root1_1_4, width=7)
|
|
|
eXRangeL.place(x=530, y=290)
|
|
|
XRigt = Label(root1_1_4, text='rigt', font=('Arial', 30))
|
|
|
XRigt.place(x=600, y=270)
|
|
|
eXRangeR = Entry(root1_1_4, width=7)
|
|
|
eXRangeR.place(x=670, y=290)
|
|
|
|
|
|
# 生成
|
|
|
b_Creat = Button(root1_1_4, text='生成', command=G4Creat)
|
|
|
b_Creat.place(x=320, y=400, width=90, height=60)
|
|
|
|
|
|
#返回
|
|
|
b_back = Button(root1_1_4, text='返 回', command=back)
|
|
|
b_back.place(x=910, y=10, width=30, height=20)
|
|
|
|
|
|
def Cosinemain():
|
|
|
root1_1.destroy()
|
|
|
def G5Creat():
|
|
|
Cosine(int(eXRangeL.get()),int(eXRangeR.get()),int(eDen.get()),int(eDis.get()))
|
|
|
def back():
|
|
|
root1_1_5.destroy()
|
|
|
Functionmain()
|
|
|
|
|
|
root1_1_5 = Frame(root, width=960, height=540)
|
|
|
root1_1_5.pack()
|
|
|
FunNameLaber = Label(root1_1_5, text='', font=('微软雅黑 ', 12))
|
|
|
FunNameLaber.place(x=200, y=50)
|
|
|
# 函数公式部分
|
|
|
yLaber = Label(root1_1_5, text='y = ', font=('Arial', 30))
|
|
|
yLaber.place(x=280, y=90)
|
|
|
|
|
|
XLaber = Label(root1_1_5, text='cos(', font=('Arial', 30))
|
|
|
XLaber.place(x=350, y=90)
|
|
|
eDis = Entry(root1_1_5, width=7)
|
|
|
eDis.place(x=430, y=110)
|
|
|
opLaber1 = Label(root1_1_5, text='度', font=('Arial', 30))
|
|
|
opLaber1.place(x=490, y=95)
|
|
|
opLaberc = Label(root1_1_5, text=' + ', font=('Arial', 30))
|
|
|
opLaberc.place(x=540, y=95)
|
|
|
opLaber2 = Label(root1_1_5, text='x)', font=('Arial', 30))
|
|
|
opLaber2.place(x=590, y=90)
|
|
|
|
|
|
# 样本数
|
|
|
DenLaber = Label(root1_1_5, text='样本数', font=('Arial', 30))
|
|
|
DenLaber.place(x=280, y=180)
|
|
|
eDen = Entry(root1_1_5, width=7)
|
|
|
eDen.place(x=410, y=200)
|
|
|
|
|
|
# 取值范围
|
|
|
XRangeLaber = Label(root1_1_5, text='取值范围', font=('Arial', 30))
|
|
|
XRangeLaber.place(x=280, y=270)
|
|
|
Xleft = Label(root1_1_5, text='left', font=('Arial', 30))
|
|
|
Xleft.place(x=460, y=270)
|
|
|
eXRangeL = Entry(root1_1_5, width=7)
|
|
|
eXRangeL.place(x=530, y=290)
|
|
|
XRigt = Label(root1_1_5, text='rigt', font=('Arial', 30))
|
|
|
XRigt.place(x=600, y=270)
|
|
|
eXRangeR = Entry(root1_1_5, width=7)
|
|
|
eXRangeR.place(x=670, y=290)
|
|
|
|
|
|
# 生成
|
|
|
b_Creat = Button(root1_1_5, text='生成', command=G5Creat)
|
|
|
b_Creat.place(x=320, y=400, width=90, height=60)
|
|
|
|
|
|
# 返回
|
|
|
b_back = Button(root1_1_5, text='返 回', command=back)
|
|
|
b_back.place(x=910, y=10, width=30, height=20)
|
|
|
|
|
|
def back():
|
|
|
root1_1.destroy()
|
|
|
ChooseDrawmain()
|
|
|
|
|
|
root1_1 = Frame(root, width=960, height=540)
|
|
|
root1_1.pack()
|
|
|
b_back = Button(root1_1, text='返 回', command=back)
|
|
|
|
|
|
b1_1 = Button(root1_1, text='一次函数', command=PolylineG1main)
|
|
|
|
|
|
b1_2 = Button(root1_1, text='二次函数', command=PolylineG2main)
|
|
|
|
|
|
b1_3 = Button(root1_1, text='三次函数', command=PolylineG3main)
|
|
|
|
|
|
b1_4 = Button(root1_1, text='正弦函数', command=Sinemain)
|
|
|
|
|
|
b1_5 = Button(root1_1, text='余弦函数', command=Cosinemain)
|
|
|
|
|
|
b_back.place(x=910, y=10, width=30, height=20)
|
|
|
b1_1.place(x=320, y=10, width=320, height=90)
|
|
|
b1_2.place(x=320, y=110, width=320, height=90)
|
|
|
b1_3.place(x=320, y=220, width=320, height=90)
|
|
|
b1_4.place(x=320, y=330, width=320, height=90)
|
|
|
b1_5.place(x=320, y=440, width=320, height=90)
|
|
|
|
|
|
def Chartmain():
|
|
|
def BarGmain():
|
|
|
root1_2.destroy()
|
|
|
|
|
|
def Table(data):
|
|
|
|
|
|
def add():
|
|
|
for index in data.index:
|
|
|
if(data.loc[index,'name']=='nan'):
|
|
|
data.loc[index, 'name'] = str(eName_add.get())
|
|
|
data.loc[index,'y']= float(e_add.get())
|
|
|
break
|
|
|
print(data['name'])
|
|
|
|
|
|
def detel():
|
|
|
for index in data.index:
|
|
|
if(data.loc[index,'name']==eName_del.get()):
|
|
|
data.loc[index, 'name'] = str('nan')
|
|
|
data.loc[index,'y']= float(0)
|
|
|
break
|
|
|
print(data['name'])
|
|
|
|
|
|
def C1Creat():
|
|
|
BarG(data['name'].values, data[str(eCreat.get())].values)
|
|
|
|
|
|
def create_bar_graph(data_dict, key):
|
|
|
if not key: # 检查key是否为空字符串
|
|
|
print("Error: Empty key provided.")
|
|
|
return
|
|
|
|
|
|
try:
|
|
|
values = data_dict.get(key, [])
|
|
|
if not values:
|
|
|
print(f"Error: Key '{key}' not found in data or empty values.")
|
|
|
return
|
|
|
|
|
|
BarG(data_dict[key].values, values.values)
|
|
|
|
|
|
except KeyError as e:
|
|
|
print(f"Error: KeyError encountered - {e}")
|
|
|
except Exception as e:
|
|
|
print(f"Unexpected error occurred: {e}")
|
|
|
|
|
|
# 假设以下是在某处定义的全局变量。
|
|
|
# data = ...
|
|
|
# eCreat = ...
|
|
|
|
|
|
# 使用函数调用时,直接传入全局变量。
|
|
|
create_bar_graph(data, str(eCreat.get()))
|
|
|
|
|
|
def flash():
|
|
|
ary = {'1': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[1, 'y']),
|
|
|
data.columns[2]: float(data.loc[1, 'z']), data.columns[3]: float(data.loc[1, 'w'])},
|
|
|
'2': {data.columns[0]: str(data.loc[2, 'name']), data.columns[1]: float(data.loc[2, 'y']),
|
|
|
data.columns[2]: float(data.loc[2, 'z']), data.columns[3]: float(data.loc[2, 'w'])},
|
|
|
'3': {data.columns[0]: str(data.loc[3, 'name']), data.columns[1]: float(data.loc[3, 'y']),
|
|
|
data.columns[2]: float(data.loc[3, 'z']), data.columns[3]: float(data.loc[3, 'w'])},
|
|
|
'4': {data.columns[0]: str(data.loc[4, 'name']), data.columns[1]: float(data.loc[4, 'y']),
|
|
|
data.columns[2]: float(data.loc[4, 'z']), data.columns[3]: float(data.loc[4, 'w'])},
|
|
|
'5': {data.columns[0]: str(data.loc[5, 'name']), data.columns[1]: float(data.loc[5, 'y']),
|
|
|
data.columns[2]: float(data.loc[5, 'z']), data.columns[3]: float(data.loc[5, 'w'])},
|
|
|
'6': {data.columns[0]: str(data.loc[6, 'name']), data.columns[1]: float(data.loc[6, 'y']),
|
|
|
data.columns[2]: float(data.loc[6, 'z']), data.columns[3]: float(data.loc[6, 'w'])},
|
|
|
'7': {data.columns[0]: str(data.loc[7, 'name']), data.columns[1]: float(data.loc[7, 'y']),
|
|
|
data.columns[2]: float(data.loc[7, 'z']), data.columns[3]: float(data.loc[7, 'w'])},
|
|
|
'8': {data.columns[0]: str(data.loc[8, 'name']), data.columns[1]: float(data.loc[8, 'y']),
|
|
|
data.columns[2]: float(data.loc[8, 'z']), data.columns[3]: float(data.loc[8, 'w'])},
|
|
|
}
|
|
|
table = TableCanvas(tframe, data=ary,
|
|
|
cellwidth=60, cellbackgr='#e3f698',
|
|
|
thefont=('Arial', 12), rowheight=18, rowheaderwidth=30,
|
|
|
rowselectedcolor='yellow', editable=True)
|
|
|
table.show()
|
|
|
|
|
|
rootTable=Tk()
|
|
|
rootTable.geometry('960x540')
|
|
|
tframe=Frame(rootTable)
|
|
|
tframe.pack()
|
|
|
|
|
|
ary = {'1': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[1, 'y']),
|
|
|
data.columns[2]: float(data.loc[1, 'z']), data.columns[3]: float(data.loc[1, 'w'])},
|
|
|
'2': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[2, 'y']),
|
|
|
data.columns[2]: float(data.loc[2, 'z']), data.columns[3]: float(data.loc[2, 'w'])},
|
|
|
'3': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[3, 'y']),
|
|
|
data.columns[2]: float(data.loc[3, 'z']), data.columns[3]: float(data.loc[3, 'w'])},
|
|
|
'4': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[4, 'y']),
|
|
|
data.columns[2]: float(data.loc[4, 'z']), data.columns[3]: float(data.loc[4, 'w'])},
|
|
|
'5': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[5, 'y']),
|
|
|
data.columns[2]: float(data.loc[5, 'z']), data.columns[3]: float(data.loc[5, 'w'])},
|
|
|
'6': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[6, 'y']),
|
|
|
data.columns[2]: float(data.loc[6, 'z']), data.columns[3]: float(data.loc[6, 'w'])},
|
|
|
'7': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[7, 'y']),
|
|
|
data.columns[2]: float(data.loc[7, 'z']), data.columns[3]: float(data.loc[7, 'w'])},
|
|
|
'8': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[8, 'y']),
|
|
|
data.columns[2]: float(data.loc[8, 'z']), data.columns[3]: float(data.loc[8, 'w'])},
|
|
|
}
|
|
|
|
|
|
model = TableModel()
|
|
|
table = TableCanvas(tframe,data=ary,
|
|
|
cellwidth=60, cellbackgr='#e3f698',
|
|
|
thefont=('Arial',12),rowheight=18, rowheaderwidth=30,
|
|
|
rowselectedcolor='yellow', editable=True)
|
|
|
|
|
|
|
|
|
table.width=800
|
|
|
#table.place(x=1,y=20,width=800,height=300)
|
|
|
#table.width(600)
|
|
|
|
|
|
|
|
|
# 返回
|
|
|
b_back = Button(rootTable, text='返 回', command=back)
|
|
|
b_back.place(x=910, y=510, width=30, height=20)
|
|
|
|
|
|
#刷新
|
|
|
b_flash = Button(rootTable, text='刷新', command=flash)
|
|
|
b_flash.place(x=110, y=330, width=50, height=30)
|
|
|
|
|
|
#添加
|
|
|
b_add=Button(rootTable,text='添加',command=add)
|
|
|
b_add.place(x=110, y=480, width=150, height=50)
|
|
|
AddNameLaber = Label(rootTable, text='样本名')
|
|
|
AddNameLaber.place(x=50, y=450)
|
|
|
eName_add = Entry(rootTable, width=7)
|
|
|
eName_add.place(x=90, y=450)
|
|
|
AddLaber = Label(rootTable, text='样本值')
|
|
|
AddLaber.place(x=140, y=450)
|
|
|
e_add = Entry(rootTable, width=7)
|
|
|
e_add.place(x=180, y=450)
|
|
|
|
|
|
#删除
|
|
|
b_del = Button(rootTable, text='删除', command=detel)
|
|
|
b_del.place(x=280, y=480, width=150, height=50)
|
|
|
DelNameLaber = Label(rootTable, text='样本名')
|
|
|
DelNameLaber.place(x=250, y=450)
|
|
|
eName_del = Entry(rootTable, width=7)
|
|
|
eName_del.place(x=290, y=450)
|
|
|
#DelLaber = Label(rootTable, text='样本值')
|
|
|
#DelLaber.place(x=340, y=450)
|
|
|
#e_del = Entry(rootTable, width=7)
|
|
|
#e_del.place(x=380, y=450)
|
|
|
|
|
|
#生成
|
|
|
CreatNameLaber = Label(rootTable, text='样本值名')
|
|
|
CreatNameLaber.place(x=500, y=450)
|
|
|
eCreat = Entry(rootTable, width=7)
|
|
|
eCreat.place(x=560, y=450)
|
|
|
b_creat = Button(rootTable, text='生成', command=C1Creat)
|
|
|
b_creat.place(x=490, y=480, width=150, height=50)
|
|
|
|
|
|
table.show()
|
|
|
|
|
|
|
|
|
def back():
|
|
|
root1_2_1.destroy()
|
|
|
Chartmain()
|
|
|
|
|
|
root1_2_1 = Frame(root, width=960, height=540)
|
|
|
root1_2_1.pack()
|
|
|
|
|
|
#表格
|
|
|
|
|
|
df={'name':['nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan'],
|
|
|
'y':[0,0,0,0,0,0,0,0],
|
|
|
'z':[0,0,0,0,0,0,0,0],
|
|
|
'w':[0,0,0,0,0,0,0,0]}
|
|
|
data=pd.DataFrame(df,index=[1, 2, 3, 4, 5, 6, 7, 8])
|
|
|
print(data)
|
|
|
|
|
|
|
|
|
Table(data)
|
|
|
|
|
|
for index in data.index:
|
|
|
print(data.loc[index,'y'])
|
|
|
|
|
|
# 返回
|
|
|
b_back = Button(root1_2_1, text='返 回', command=back)
|
|
|
b_back.place(x=910, y=10, width=30, height=20)
|
|
|
|
|
|
def Histogrammain():
|
|
|
root1_2.destroy()
|
|
|
|
|
|
def Table(data):
|
|
|
|
|
|
def add():
|
|
|
for index in data.index:
|
|
|
if (data.loc[index, 'name'] == 'nan'):
|
|
|
data.loc[index, 'name'] = str(eName_add.get())
|
|
|
data.loc[index, 'y'] = float(e_add.get())
|
|
|
break
|
|
|
print(data['name'])
|
|
|
|
|
|
def detel():
|
|
|
for index in data.index:
|
|
|
if (data.loc[index, 'name'] == eName_del.get()):
|
|
|
data.loc[index, 'name'] = str('nan')
|
|
|
data.loc[index, 'y'] = float(0)
|
|
|
break
|
|
|
print(data['name'])
|
|
|
|
|
|
def C2Creat():
|
|
|
DataHis =([0, 0, 0, 0, 0, 0, 0, 0],
|
|
|
[0, 0, 0, 0, 0, 0, 0, 0],
|
|
|
[0, 0, 0, 0, 0, 0, 0, 0])
|
|
|
for index in data.index:
|
|
|
if (data.loc[index, 'name'] != 'nan'):
|
|
|
DataHis[0][index] = data.loc[index,'y']
|
|
|
DataHis[1][index] = data.loc[index, 'z']
|
|
|
DataHis[2][index] = data.loc[index, 'w']
|
|
|
|
|
|
print(DataHis)
|
|
|
Histogram(cums,DataHis)
|
|
|
|
|
|
def flash():
|
|
|
ary = {'1': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[1, 'y']),
|
|
|
data.columns[2]: float(data.loc[1, 'z']), data.columns[3]: float(data.loc[1, 'w'])},
|
|
|
'2': {data.columns[0]: str(data.loc[2, 'name']), data.columns[1]: float(data.loc[2, 'y']),
|
|
|
data.columns[2]: float(data.loc[2, 'z']), data.columns[3]: float(data.loc[2, 'w'])},
|
|
|
'3': {data.columns[0]: str(data.loc[3, 'name']), data.columns[1]: float(data.loc[3, 'y']),
|
|
|
data.columns[2]: float(data.loc[3, 'z']), data.columns[3]: float(data.loc[3, 'w'])},
|
|
|
'4': {data.columns[0]: str(data.loc[4, 'name']), data.columns[1]: float(data.loc[4, 'y']),
|
|
|
data.columns[2]: float(data.loc[4, 'z']), data.columns[3]: float(data.loc[4, 'w'])},
|
|
|
'5': {data.columns[0]: str(data.loc[5, 'name']), data.columns[1]: float(data.loc[5, 'y']),
|
|
|
data.columns[2]: float(data.loc[5, 'z']), data.columns[3]: float(data.loc[5, 'w'])},
|
|
|
'6': {data.columns[0]: str(data.loc[6, 'name']), data.columns[1]: float(data.loc[6, 'y']),
|
|
|
data.columns[2]: float(data.loc[6, 'z']), data.columns[3]: float(data.loc[6, 'w'])},
|
|
|
'7': {data.columns[0]: str(data.loc[7, 'name']), data.columns[1]: float(data.loc[7, 'y']),
|
|
|
data.columns[2]: float(data.loc[7, 'z']), data.columns[3]: float(data.loc[7, 'w'])},
|
|
|
'8': {data.columns[0]: str(data.loc[8, 'name']), data.columns[1]: float(data.loc[8, 'y']),
|
|
|
data.columns[2]: float(data.loc[8, 'z']), data.columns[3]: float(data.loc[8, 'w'])},
|
|
|
}
|
|
|
table = TableCanvas(tframe, data=ary,
|
|
|
cellwidth=60, cellbackgr='#e3f698',
|
|
|
thefont=('Arial', 12), rowheight=18, rowheaderwidth=30,
|
|
|
rowselectedcolor='yellow', editable=True)
|
|
|
table.show()
|
|
|
for index in data.index:
|
|
|
if (data.loc[index, 'name'] != 'nan'):
|
|
|
cums=cums+1
|
|
|
print(cums)
|
|
|
|
|
|
rootTable = Tk()
|
|
|
rootTable.geometry('960x540')
|
|
|
tframe = Frame(rootTable)
|
|
|
tframe.pack()
|
|
|
|
|
|
ary = {'1': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[1, 'y']),
|
|
|
data.columns[2]: float(data.loc[1, 'z']), data.columns[3]: float(data.loc[1, 'w'])},
|
|
|
'2': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[2, 'y']),
|
|
|
data.columns[2]: float(data.loc[2, 'z']), data.columns[3]: float(data.loc[2, 'w'])},
|
|
|
'3': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[3, 'y']),
|
|
|
data.columns[2]: float(data.loc[3, 'z']), data.columns[3]: float(data.loc[3, 'w'])},
|
|
|
'4': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[4, 'y']),
|
|
|
data.columns[2]: float(data.loc[4, 'z']), data.columns[3]: float(data.loc[4, 'w'])},
|
|
|
'5': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[5, 'y']),
|
|
|
data.columns[2]: float(data.loc[5, 'z']), data.columns[3]: float(data.loc[5, 'w'])},
|
|
|
'6': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[6, 'y']),
|
|
|
data.columns[2]: float(data.loc[6, 'z']), data.columns[3]: float(data.loc[6, 'w'])},
|
|
|
'7': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[7, 'y']),
|
|
|
data.columns[2]: float(data.loc[7, 'z']), data.columns[3]: float(data.loc[7, 'w'])},
|
|
|
'8': {data.columns[0]: str(data.loc[1, 'name']), data.columns[1]: float(data.loc[8, 'y']),
|
|
|
data.columns[2]: float(data.loc[8, 'z']), data.columns[3]: float(data.loc[8, 'w'])},
|
|
|
}
|
|
|
|
|
|
model = TableModel()
|
|
|
table = TableCanvas(tframe, data=ary,
|
|
|
cellwidth=60, cellbackgr='#e3f698',
|
|
|
thefont=('Arial', 12), rowheight=18, rowheaderwidth=30,
|
|
|
rowselectedcolor='yellow', editable=True)
|
|
|
|
|
|
table.width = 800
|
|
|
|
|
|
# 返回
|
|
|
b_back = Button(rootTable, text='返 回', command=back)
|
|
|
b_back.place(x=910, y=510, width=30, height=20)
|
|
|
|
|
|
# 刷新
|
|
|
b_flash = Button(rootTable, text='刷新', command=flash)
|
|
|
b_flash.place(x=110, y=330, width=50, height=30)
|
|
|
|
|
|
# 添加
|
|
|
b_add = Button(rootTable, text='添加', command=add)
|
|
|
b_add.place(x=110, y=480, width=150, height=50)
|
|
|
AddNameLaber = Label(rootTable, text='样本名')
|
|
|
AddNameLaber.place(x=50, y=450)
|
|
|
eName_add = Entry(rootTable, width=7)
|
|
|
eName_add.place(x=90, y=450)
|
|
|
AddLaber = Label(rootTable, text='样本值')
|
|
|
AddLaber.place(x=140, y=450)
|
|
|
e_add = Entry(rootTable, width=7)
|
|
|
e_add.place(x=180, y=450)
|
|
|
|
|
|
# 删除
|
|
|
b_del = Button(rootTable, text='删除', command=detel)
|
|
|
b_del.place(x=280, y=480, width=150, height=50)
|
|
|
DelNameLaber = Label(rootTable, text='样本名')
|
|
|
DelNameLaber.place(x=250, y=450)
|
|
|
eName_del = Entry(rootTable, width=7)
|
|
|
eName_del.place(x=290, y=450)
|
|
|
|
|
|
# 生成
|
|
|
CreatNameLaber = Label(rootTable, text='样本值名')
|
|
|
CreatNameLaber.place(x=500, y=450)
|
|
|
eCreat = Entry(rootTable, width=7)
|
|
|
eCreat.place(x=560, y=450)
|
|
|
b_creat = Button(rootTable, text='生成', command=C2Creat)
|
|
|
b_creat.place(x=490, y=480, width=150, height=50)
|
|
|
|
|
|
table.show()
|
|
|
|
|
|
def back():
|
|
|
root1_2_2.destroy()
|
|
|
Chartmain()
|
|
|
|
|
|
root1_2_2 = Frame(root, width=960, height=540)
|
|
|
root1_2_2.pack()
|
|
|
|
|
|
# 表格
|
|
|
#样本数
|
|
|
cums=0
|
|
|
df = {'name': ['nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan'],
|
|
|
'y': [0, 0, 0, 0, 0, 0, 0, 0],
|
|
|
'z': [0, 0, 0, 0, 0, 0, 0, 0],
|
|
|
'w': [0, 0, 0, 0, 0, 0, 0, 0]}
|
|
|
data = pd.DataFrame(df, index=[1, 2, 3, 4, 5, 6, 7, 8])
|
|
|
print(data)
|
|
|
|
|
|
Table(data)
|
|
|
|
|
|
# 返回
|
|
|
b_back = Button(root1_2_2, text='返 回', command=back)
|
|
|
b_back.place(x=910, y=10, width=30, height=20)
|
|
|
|
|
|
def back():
|
|
|
root1_2.destroy()
|
|
|
ChooseDrawmain()
|
|
|
|
|
|
root1_2 = Frame(root, width=960, height=540)
|
|
|
root1_2.pack()
|
|
|
b_back=Button(root1_2, text='返 回', command=back)
|
|
|
b1_1 = Button(root1_2, text='条形图', command=BarGmain)
|
|
|
b1_2 = Button(root1_2, text='直方图', command=Histogrammain)
|
|
|
b_back.place(x=910,y=10,width=30,height=20)
|
|
|
b1_1.place(x=320, y=10, width=320, height=90)
|
|
|
b1_2.place(x=320, y=110, width=320, height=90)
|
|
|
|
|
|
def ChooseDrawmain():
|
|
|
|
|
|
def Function():
|
|
|
root1.destroy()
|
|
|
Functionmain()
|
|
|
|
|
|
def Chart():
|
|
|
root1.destroy()
|
|
|
Chartmain()
|
|
|
|
|
|
root1 = Frame(root, width=960, height=540) # 在root窗口上建立虚拟容器root1,容纳登录界面的组件
|
|
|
root1.pack()
|
|
|
b1 = Button(root1, text='函 数', command=Function) # 设置按钮,绑定触发的事件
|
|
|
b2 = Button(root1, text='图 表', command=Chart)
|
|
|
b1.place(x=320,y=135,width=320,height=90)
|
|
|
b2.place(x=320,y=250,width=320,height=90)
|
|
|
|
|
|
root = Tk()
|
|
|
root.title("数据可视化")
|
|
|
root.option_add("*Font", "微软雅黑 12")
|
|
|
root.geometry('960x540')
|
|
|
label = ttk.Label(root, text="计科2103,龚博")
|
|
|
label.pack()
|
|
|
ChooseDrawmain()
|
|
|
root.mainloop() |