做一个tkinter和聚类分析程序的结合
import tkinter as tk
window=tk.Tk()
window.title('Hello!')
window.geometry('300x200')
var=tk.StringVar()
on_hit=False
l=tk.Label(window,textvariable=var,bg='green',font=('Arial',12),width=15,height=2)
def click_me():
global on_hit
if on_hit==False:
on_hit=True
var.set('Yahoo! It run!')
else:
on_hit=False
var.set('OK! Try again!')
def click_me1():
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
from sklearn import preprocessing
from scipy.cluster.hierarchy import linkage,dendrogram
from scipy.cluster.hierarchy import fcluster
from matplotlib.ticker import MultipleLocator
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False
datafile='E:/07software/Fuzzy_clustering/Physical_training.xlsx'
data=pd.read_excel(datafile,header=None)
data_s1=data.iloc[1:21,0:17]
varieties=list(data_s1.pop(0))
data_s2=data.iloc[1:21,1:17].values
data_s2=data_s2.astype(np.float64)
data_s3=preprocessing.StandardScaler().fit_transform(data_s2)
mergings=linkage(data_s3,method='complete')
plt.figure(figsize=(10,6),dpi=80)
ax=plt.subplot(111)
dendrogram(mergings,labels=varieties,leaf_rotation=90,leaf_font_size=10)
yminorLocator=MultipleLocator(0.2)
ax.yaxis.set_minor_locator(yminorLocator)
plt.show()
labels=fcluster(mergings,6,criterion='distance')
df=pd.DataFrame({'labels':labels,'varieties':varieties})
ct=pd.crosstab(df['labels'],df['varieties'])
ct
b=tk.Button(window,text='Click Here!',width=15,height=2,command=click_me1)
b.pack()
l.pack()
window.mainloop()