# -*- coding: utf-8 -*-
"""
Created on Tue May 14 18:58:50 2019
把图片保存成了文件,供gui窗口读取,取消了Label_img的显示,调整按钮位置
添加大小比例,新的分析数据
大小比例数据写好了,下一步画图
改变工具栏背景色为白色,大小比例取百分之一的数据
奇偶比例也写好了,并且先切百分之一的数据,然后再分类统计,这样提升程序速度
增加了数据预处理,pl3qh,提前切好排列3百分之一的数据,省得临时切费时间
把横向轴X上写上中奖号,省得不知道中奖号多少,程序写错了也不知道
把pl3重新排序,前后顺序互换一下
把质合数和质合比例都统计出来了
加了组选3组选6
@author: Administrator
"""
import pandas as pd
from tqdm import tqdm
from pandas.core.frame import DataFrame
import numpy as np #科学计算数据分析库,另起名为np
import matplotlib.pyplot as plt #擅长画二维图曲线,股票均线,另起名为plt
from sklearn.preprocessing import MinMaxScaler #机器学习库,数据预处理,把数据定为0,1之间
from keras.models import Sequential #深度学习库,建立模型,多网络层线性堆叠顺序模型
from keras.layers import LSTM, Dense, Activation #准备用三种神经网络层,长短期记忆网络,全连接网络层,激活层
#from keras.utils import plot_model#模型可视化做图
#from IPython.display import SVG
#from keras.utils.vis_utils import model_to_dot
import xlrd#读excel文件
from tkinter import *
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg,NavigationToolbar2Tk #NavigationToolbar2TkAgg
import matplotlib
matplotlib.use('Agg')
from matplotlib.pyplot import plot,savefig
from PIL import Image, ImageTk
from tkinter import ttk
plt.rcParams['font.family'] = 'SimHei' ## 设置字体
def read_to_excel():#自定义函数,读取excel表里排列三中奖号
# 设置路径
path = 'pl3.xls'
# 打开execl
workbook = xlrd.open_workbook(path)
# 根据sheet索引或者名称获取sheet内容
Data_sheet = workbook.sheets()[0] # 通过索引获取
#rowNum = Data_sheet.nrows # sheet行数
#colNum = Data_sheet.ncols # sheet列数
# 获取整行和整列的值(列表)
#rows = Data_sheet.row_values(0) # 获取第一行内容
pl3 = Data_sheet.col_values(1) # 获取第二列内容
pl3=pl3[1:]
pl3.reverse()
# print (rows)
#print (cols)#打印开奖号
baiwei=[x[0] for x in pl3]
shiwei=[x[1] for x in pl3]
gewei=[x[2] for x in pl3]
return pl3,baiwei,shiwei,gewei
#创建窗口
root = tk.Tk()
root.wm_title("体育彩票排列3统计预测系统")
root.geometry("1920x1010+0+0")
#img_open = Image.open('zft.jpg')
#img_png = ImageTk.PhotoImage(img_open)
#label_img = tk.Label(root, image = img_png)
#label_img.pack()
f=plt.figure(figsize=(19.20,10.80))
# 将绘制的图形显示到tkinter:创建属于root的canvas画布,并将图f置于画布上
pl3,baiwei,shiwei,gewei=read_to_excel()#读excel表里的开奖号并做成开奖号,百位,十位,个位,四个数组
#数据切片显示百分之1的数据,因为五千多期号做到一个屏幕上根本看不清
qiep=int(np.array(pl3).shape[0] *0.98)#数据切片,设定要切多少
zb=['0','1','2','3','4','5','6','7','8','9','10']#校正Y轴,就是竖轴
pl3qh=pl3[qiep:]
pl3q=DataFrame(np.array(pl3)[qiep:])
def zft(event):
plt.clf()
create_matplotlibzft()
def k(event):
plt.clf()
create_matplotlibk()
def dx(event):
plt.clf()
create_matplotlibdx()
def jo(event):
plt.clf()
create_matplotlibjo()
def dxbl(event):
plt.clf()
create_matplotlibdxbl()
def jobl(event):
plt.clf()
create_matplotlibjobl()
def dxbljj(event):
plt.clf()
create_matplotlibdxbljj()
def jobljj(event):
plt.clf()
create_matplotlibjobljj()
def zh(event):
plt.clf()
create_matplotlibzh()
def zhbl(event):
plt.clf()
create_matplotlibzhbl()
def zhbljj(event):
plt.clf()
create_matplotlibzhbljj()
def z3z6(event):
plt.clf()
create_matplotlibz3z6()
def hz(event):
plt.clf()
create_matplotlibhz()
def ac(event):
plt.clf()
create_matplotlibac()
def lh(event):
plt.clf()
create_matplotliblh()
def ycz(event):
plt.clf()
create_matplotlibycz()
def create_matplotlibzft():
#统计每个数字在个十百位出现次数
baiweidata={}
for i in range(10):
i=str(i)
print('排列3百位数字 %d 出现次数 %s ' % (int(i),baiwei.count(i)))
baiweidata [i]= baiwei.count(i)
i=int(i)
print(baiweidata)
shiweidata={}
for i in range(10):
i=str(i)
print('排列3十位数字 %d 出现次数 %s ' % (int(i),shiwei.count(i)))
shiweidata[i]=shiwei.count(i)
i=int(i)
print(shiweidata)
geweidata={}
for i in range(10):
i=str(i)
print('排列3个位数字 %d 出现次数 %s ' % (int(i),gewei.count(i)))
geweidata[i]=gewei.count(i)
i=int(i)
print(geweidata)
#转换数据类型,转换成做图函数能认识的参数
bwcs=baiweidata.values()
swcs=shiweidata.values()
gwcs=geweidata.values()
#画直方图
plt.bar(np.arange(10),bwcs,width=0.3)
plt.bar(np.arange(10)+0.3,swcs,width=0.3)
plt.bar(np.arange(10)+0.6,gwcs,width=0.3)
#每个数字出现次数写直方柱上边
for x,y in zip(np.arange(10),bwcs):
plt.text(x,y+0.5,'%d'%y, ha='center', va= 'bottom')
for x,y in zip(np.arange(10),swcs):
plt.text(x+0.3,y+0.05,'%d'%y, ha='center', va= 'bottom')
for x,y in zip(np.arange(10),gwcs):
plt.text(x+0.6,y+0.05,'%d'%y, ha='center', va= 'bottom')
#显示X横轴0到9数字
new_ticks = np.linspace(0, 9, 10)
plt.xticks(new_ticks)
#直方图标题等文字信息
plt.xlabel("0到9,从左到右按百十个位排")
plt.ylabel("出现次数")
plt.title("排列三0到9在百十个位出现次数统计表")
plt.legend(['百位','十位','个位'])
savefig('0到9出现次数.jpg')
#canvas.draw()
def create_matplotlibk():
plt.clf()
#百十个位K线图
baiweik=np.array(baiwei)[qiep:]
shiweik=np.array(shiwei)[qiep:]
geweik=np.array(gewei)[qiep:]#要百分之一的数据
print(baiweik,shiweik,geweik)
#开始做图
plt.xticks(np.linspace(0, len(baiweik)-1, len(baiweik)))
plt.grid() # 生成网格
plt.plot(zb,'w')
plt.plot(baiweik,'r')
plt.plot(shiweik,'g')
plt.plot(geweik,'b')
plt.xlabel("最近 %d 期"%len(baiweik))
plt.ylabel("0到9数字")
plt.title("排列三K线图")
plt.legend([' ','百位','十位','个位'])
savefig('K线图.jpg')
#canvas.draw()
def create_matplotlibdx():
plt.clf()
#画大小走势图
baiweidx=[]
baiwei1=list(map(int, baiwei))
for i in range(len(baiwei)):
if baiwei1[i]<5:
baiweidx.append(6)
else:
baiweidx.append(8)
shiweidx=[]
shiwei1=list(map(int, shiwei))
for i in range(len(shiwei)):
if shiwei1[i]<5:
shiweidx.append(3)
else:
shiweidx.append(5)
geweidx=[]
gewei1=list(map(int, gewei))
for i in range(len(gewei)):
if gewei1[i]<5:
geweidx.append(0)
else:
geweidx.append(2)
baiweidx=np.array(baiweidx)[qiep:]
shiweidx=np.array(shiweidx)[qiep:]
geweidx=np.array(geweidx)[qiep:]
print(len(baiweidx),baiweidx)
plt.xticks(np.linspace(0, len(baiweidx)-1, len(baiweidx)),pl3qh)
plt.yticks(np.linspace(0, 9, 10) , ['小','个位','大','小','十位','大','小','百位','大'])
plt.grid() # 生成网格
plt.plot(zb,'w')
plt.plot(baiweidx,'r')
plt.plot(shiweidx,'g')
plt.plot(geweidx,'b')
plt.xlabel("最近 %d 期"%len(baiweidx))
plt.ylabel("从上到下百十个位")
plt.title("排列三大小走势图")
plt.legend([' ','百位','十位','个位'])
savefig('大小走势图.jpg')
#canvas.draw()
def create_matplotlibjo():
plt.clf()
#画奇偶走势图
baiweijo=[]
baiwei1=list(map(int, baiwei))
for i in range(len(baiwei)):
if baiwei1[i]==1 or baiwei1[i]==3 or baiwei1[i]==5 or baiwei1[i]==7 or baiwei1[i]==9:
baiweijo.append(6)
else:
baiweijo.append(8)
shiweijo=[]
shiwei1=list(map(int, shiwei))
for i in range(len(shiwei)):
if shiwei1[i]==1 or shiwei1[i]==3 or shiwei1[i]==5 or shiwei1[i]==7 or shiwei1[i]==9:
shiweijo.append(3)
else:
shiweijo.append(5)
geweijo=[]
gewei1=list(map(int, gewei))
for i in range(len(gewei)):
if gewei1[i]==1 or gewei1[i]==3 or gewei1[i]==5 or gewei1[i]==7 or gewei1[i]==9:
geweijo.append(0)
else:
geweijo.append(2)
baiweijo=np.array(baiweijo)[qiep:]
shiweijo=np.array(shiweijo)[qiep:]
geweijo=np.array(geweijo)[qiep:]
print(len(geweijo),geweijo)
plt.xticks(np.linspace(0, len(geweijo)-1, len(geweijo)),pl3qh)
plt.yticks(np.linspace(0, 9, 10) , ['奇','个位','偶','奇','十位','偶','奇','百位','偶'])
plt.grid() # 生成网格
plt.plot(zb,'w')
plt.plot(baiweijo,'r')
plt.plot(shiweijo,'g')
plt.plot(geweijo,'b')
plt.xlabel("最近 %d 期"%len(baiweijo))
plt.ylabel("从上到下百十个位")
plt.title("排列三奇偶走势图")
plt.legend([' ','百位','十位','个位'])
print(np.array(pl3)[qiep:],np.array(baiwei)[qiep:])
savefig('奇偶走势图.jpg')
#canvas.draw()
def create_matplotlibdxbl():
#大小比例
plt.clf()
dxbl=DataFrame(columns=['0'])
dxbly=DataFrame(columns=['大小比例'])
for x in range(len(pl3q)):
yyy=0
xxx=""
for j in range(3):
ppp=pl3q.loc[x].str.get(j)
if int(ppp)<5:
xxx=xxx+'1'
else:
xxx=xxx+'2'
#print((pl31[0:x+1])[j:j+1])
if xxx.count('2')==0:
yyy=1
elif xxx.count('2')==1:
yyy=2
elif xxx.count('2')==2:
yyy=3
elif xxx.count('2')==3:
yyy=4
else:
print('统计大小比例出错')
dxbl.loc[x]=xxx
dxbly.loc[x]=yyy
dxbl['大小比例']=dxbly
plt.xticks(np.linspace(0, len(dxbly),len(dxbly)+1),pl3qh)
plt.yticks(np.linspace(0, 4, 5) , [' ','小小小','2小1大','2大一小','大大大'])
zb1=['0','1','2','3','4']
plt.grid() # 生成网格
plt.plot(zb1,'w')
plt.plot(dxbly,'r')
plt.xlabel("最近 %d 期"%len(dxbly))
plt.ylabel("从上到下,从大到小")
plt.title("大小比例走势图")
#plt.legend([' ','百位','十位','个位'])
savefig('大小比例走势图.jpg')
#print((dxbl[x])[j])
return dxbly
def create_matplotlibdxbljj():
#大小比例精简
plt.clf()
dxbljjs=DataFrame(columns=['大小比例精简'])
dxbly=create_matplotlibdxbl()
plt.clf()
for i in range(len(dxbly)):
if int(dxbly.loc[i])==1 or int(dxbly.loc[i])==4:
dxbljjs.loc[i]=1
else:
dxbljjs.loc[i]=2
print('大小比例精简',dxbljjs)
plt.xticks(np.linspace(0, len(dxbljjs),len(dxbljjs)+1),pl3qh)
plt.yticks(np.linspace(0, 2, 3) , [' ','3大或3小','2小1大或2大1小'])
zb1=['0','1','2','3']
plt.grid() # 生成网格
plt.plot(zb1,'w')
plt.plot(dxbljjs,'r')
plt.xlabel("最近 %d 期"%len(dxbljjs))
plt.ylabel("下边是3大或3小,上边是2小1大或2大1小")
plt.title("大小比例精简走势图")
#plt.legend([' ','百位','十位','个位'])
savefig('大小比例精简走势图.jpg')
#print((dxbl[x])[j])
def create_matplotlibjobl():
#奇偶比例
plt.clf()
jobl=DataFrame(columns=['0'])
jobly=DataFrame(columns=['奇偶比例'])
for x in range(len(pl3q)):
yyy=0
xxx=""
for j in range(3):
ppp=pl3q.loc[x].str.get(j)
if int(ppp)==1 or int(ppp)==3 or int(ppp)==5 or int(ppp)==7 or int(ppp)==9:
xxx=xxx+'1'
else:
xxx=xxx+'2'
if xxx.count('2')==0:
yyy=1
elif xxx.count('2')==1:
yyy=2
elif xxx.count('2')==2:
yyy=3
elif xxx.count('2')==3:
yyy=4
else:
print('统计奇偶比例出错')
jobl.loc[x]=xxx
jobly.loc[x]=yyy
jobl['奇偶比例']=jobly
plt.xticks(np.linspace(0, len(jobly),len(jobly)+1),pl3qh)
plt.yticks(np.linspace(0, 4, 5) , [' ','奇奇奇','2奇1偶','2偶一奇','偶偶偶'])
zb1=['0','1','2','3','4']
plt.grid() # 生成网格
plt.plot(zb1,'w')
plt.plot(jobly,'r')
plt.xlabel("最近 %d 期"%len(jobly))
plt.ylabel("从上到下,从偶到奇")
plt.title("奇偶比例走势图")
#plt.legend([' ','百位','十位','个位'])
savefig('奇偶比例走势图.jpg')
print('排列3切片',pl3q)
return jobly
def create_matplotlibjobljj():
plt.clf()
jobljjs=DataFrame(columns=['奇偶比例精简'])
jobly=create_matplotlibjobl()
plt.clf()
for i in range(len(jobly)):
if int(jobly.loc[i])==1 or int(jobly.loc[i])==4:
jobljjs.loc[i]=1
else:
jobljjs.loc[i]=2
print('奇偶比例精简',jobljjs)
plt.xticks(np.linspace(0, len(jobljjs),len(jobljjs)+1),pl3qh)
plt.yticks(np.linspace(0, 2, 3) , [' ','3奇或3偶','2奇1偶或2偶1奇'])
zb1=['0','1','2','3']
plt.grid() # 生成网格
plt.plot(zb1,'w')
plt.plot(jobljjs,'r')
plt.xlabel("最近 %d 期"%len(jobljjs))
plt.ylabel("下边是3奇或3偶,上边是2奇1偶或2偶1奇")
plt.title("奇偶比例精简走势图")
#plt.legend([' ','百位','十位','个位'])
savefig('奇偶比例精简走势图.jpg')
def create_matplotlibzhbl():
#质合比例
plt.clf()
zhbl=DataFrame(columns=['0'])
zhbly=DataFrame(columns=['质合比例'])
plt.clf()
for x in range(len(pl3q)):
yyy=0
xxx=""
for j in range(3):
ppp=pl3q.loc[x].str.get(j)
if int(ppp)==1 or int(ppp)==3 or int(ppp)==5 or int(ppp)==7 or int(ppp)==2:
xxx=xxx+'1'#1为质数,2为合数
else:
xxx=xxx+'2'
if xxx.count('2')==0:#1为质数,2为合数
yyy=1
elif xxx.count('2')==1:
yyy=2
elif xxx.count('2')==2:
yyy=3
elif xxx.count('2')==3:
yyy=4
else:
print('统计质合出错')
zhbl.loc[x]=xxx
zhbly.loc[x]=yyy
plt.xticks(np.linspace(0, len(zhbly),len(zhbly)+1),pl3qh)
plt.yticks(np.linspace(0, 4, 5) , [' ','质质质','2质1合','2合1质','合合合'])
zb1=['0','1','2','3','4']
plt.grid() # 生成网格
plt.plot(zb1,'w')
plt.plot(zhbly,'r')
plt.xlabel("最近 %d 期"%len(zhbly))
plt.ylabel("质数12357,合数46890")
plt.title("质合比例走势图")
#plt.legend([' ','百位','十位','个位'])
savefig('质合比例走势图.jpg')
print('排列3切片',pl3q)
return zhbly
def create_matplotlibzhbljj():
plt.clf()
zhbljjs=DataFrame(columns=['质合比例精简'])
zhbly=create_matplotlibzhbl()
plt.clf()
for i in range(len(zhbly)):
if int(zhbly.loc[i])==1 or int(zhbly.loc[i])==4:
zhbljjs.loc[i]=1
else:
zhbljjs.loc[i]=2
print('质合比例精简',zhbljjs)
plt.xticks(np.linspace(0, len(zhbljjs),len(zhbljjs)+1),pl3qh)
plt.yticks(np.linspace(0, 2, 3) , [' ','3质或3合','2质1合或2合1质'])
zb1=['0','1','2','3']
plt.grid() # 生成网格
plt.plot(zb1,'w')
plt.plot(zhbljjs,'r')
plt.xlabel("最近 %d 期"%len(zhbljjs))
plt.ylabel("下边是3质或3合,上边是2质1合或2合1质")
plt.title("质合比例精简走势图")
#plt.legend([' ','百位','十位','个位'])
savefig('质合比例精简走势图.jpg')
def create_matplotlibzh():
plt.clf()
#画质合走势图
baiweizh=[]
baiwei1=list(map(int, baiwei))
for i in range(len(baiwei)):
if baiwei1[i]==1 or baiwei1[i]==3 or baiwei1[i]==5 or baiwei1[i]==7 or baiwei1[i]==2:
baiweizh.append(6)
else:
baiweizh.append(8)
shiweizh=[]
shiwei1=list(map(int, shiwei))
for i in range(len(shiwei)):
if shiwei1[i]==1 or shiwei1[i]==3 or shiwei1[i]==5 or shiwei1[i]==7 or shiwei1[i]==2:
shiweizh.append(3)
else:
shiweizh.append(5)
geweizh=[]
gewei1=list(map(int, gewei))
for i in range(len(gewei)):
if gewei1[i]==1 or gewei1[i]==3 or gewei1[i]==5 or gewei1[i]==7 or gewei1[i]==2:
geweizh.append(0)
else:
geweizh.append(2)
baiweizh=np.array(baiweizh)[qiep:]
shiweizh=np.array(shiweizh)[qiep:]
geweizh=np.array(geweizh)[qiep:]
print(len(geweizh),geweizh)
plt.xticks(np.linspace(0, len(geweizh)-1, len(geweizh)),pl3qh)
plt.yticks(np.linspace(0, 9, 10) , ['质','个位','合','质','十位','合','质','百位','合'])
plt.grid() # 生成网格
plt.plot(zb,'w')
plt.plot(baiweizh,'r')
plt.plot(shiweizh,'g')
plt.plot(geweizh,'b')
plt.xlabel("最近 %d 期"%len(baiweizh))
plt.ylabel("从上到下百十个位")
plt.title("排列三质合走势图")
plt.legend([' ','百位','十位','个位'])
savefig('质合走势图.jpg')
def create_matplotlibz3z6():
plt.clf()
#组选3组选6走势图
print('pl3qh',pl3qh,'pl3q',pl3q)
z3z6h=DataFrame(columns=['0'])
for i in range(len(pl3q)):
a=[0,0,0]
for j in range(3):
ppp=pl3q.loc[i].str.get(j)
a[j]=int(ppp)
if a[0]!=a[1] and a[0]!=a[2] and a[1]!=a[2]:
z3z6h.loc[i]=2
else:
z3z6h.loc[i]=1
plt.xticks(np.linspace(0, len(z3z6h),len(z3z6h)+1),pl3qh)
plt.yticks(np.linspace(0, 3,4) , [' ','组选3','组选6'])
zb1=['0','1','2','3']
plt.grid() # 生成网格
plt.plot(zb1,'w')
plt.plot(z3z6h,'r')
plt.xlabel("最近 %d 期"%len(z3z6h))
plt.ylabel("有重复号码就是组选3,没重复号码就是组选6")
plt.title("组选3组选6走势图")
#plt.legend([' ','百位','十位','个位'])
savefig('组选3组选6走势图.jpg')
def create_matplotlibhz():
plt.clf()
#和值0到13算小,14到27算大
hz=DataFrame(columns=['0'])
b=[0]*len(pl3q)
for i in range(len(pl3q)):
a=[0,0,0]
for j in range(3):
ppp=pl3q.loc[i].str.get(j)
a[j]=int(ppp)
b[i]=a[0]+a[1]+a[2]
if b[i]<14:
hz.loc[i]=1
else:
hz.loc[i]=2
plt.xticks(np.linspace(0, len(hz),len(hz)+1),pl3qh)
plt.yticks(np.linspace(0, 3,4) , [' ','和值0到13','和值14到27'])
zb1=['0','1','2','3']
plt.grid() # 生成网格
plt.plot(zb1,'w')
plt.plot(hz,'r')
plt.xlabel("最近 %d 期"%len(hz))
plt.ylabel(" ")
plt.title("和值走势图")
#plt.legend([' ','百位','十位','个位'])
savefig('和值走势图.jpg')
def create_matplotlibac():
plt.clf()
#AC值走势
ac=DataFrame(columns=['AC'])
for i in range(len(pl3q)):
a=[0]*3
for j in range(3):
ppp=pl3q.loc[i].str.get(j)
a[j]=int(ppp)
if a[0]==a[1] and a[1]==a[2] and a[0]==a[2]:
ac.loc[i]=0
elif (a[0]==a[1] and a[0]!=a[2]) or (a[1]==a[2] and a[1]!=a[0]) or (a[2]==a[0] and a[2]!=a[1]):
ac.loc[i]=1
else:
ac.loc[i]=2
print('ac值',ac)
plt.xticks(np.linspace(0, len(ac),len(ac)+1),pl3qh)
plt.yticks(np.linspace(0, 3,4) , [' ac0三数相同','ac1有两数相同','ac2三数不同'])
zb1=['0','1','2','3']
plt.grid() # 生成网格
plt.plot(zb1,'w')
plt.plot(ac,'r')
plt.xlabel("最近 %d 期"%len(ac))
plt.ylabel(" ")
plt.title("ac走势图")
#plt.legend([' ','百位','十位','个位'])
savefig('ac走势图.jpg')
def create_matplotliblh():
plt.clf()
#连号
lh=DataFrame(columns=['连号'])
for i in range(len(pl3q)):
a=[0]*3
for j in range(3):
ppp=pl3q.loc[i].str.get(j)
a[j]=int(ppp)
if a[0]+1==a[1] or a[0]+1==a[2] or a[1]+1==a[2] or a[2]+1==a[1] or a[2]+1==a[0] or a[1]+1==a[0]:
lh.loc[i]=2
else:
lh.loc[i]=1
print('连号',lh)
plt.xticks(np.linspace(0, len(lh),len(lh)+1),pl3qh)
plt.yticks(np.linspace(0, 3,4) , [' ','无连号','有连号'])
zb1=['0','1','2','3']
plt.grid() # 生成网格
plt.plot(zb1,'w')
plt.plot(lh,'r')
plt.xlabel("最近 %d 期"%len(lh))
plt.ylabel(" ")
plt.title("连号走势图")
#plt.legend([' ','百位','十位','个位'])
savefig('连号走势图.jpg')
def create_matplotlibycz():
plt.clf()
#遗传值
ycz=DataFrame(columns=['遗传值'])
for i in range(len(pl3q)-1):
a=[0]*3
for j in range(3):
ppp=pl3q.loc[i].str.get(j)
a[j]=int(ppp)
for x in range(3):
ddd=''
ddd=pl3q.loc[i+1].str.get(x)
if a[j]==int(ddd):
ycz.loc[i+1]=2
break
else:
ycz.loc[i+1]=1
if int(ycz.loc[i+1])==2:
break
print('遗传值',ycz)
plt.xticks(np.linspace(0, len(ycz),len(ycz)+1),pl3qh)
plt.yticks(np.linspace(0, 3,4) , [' ','无遗传值','有遗传值'])
zb1=['0','1','2','3']
plt.grid() # 生成网格
plt.plot(zb1,'w')
plt.plot(ycz,'r')
plt.xlabel("最近 %d 期"%len(ycz))
plt.ylabel(" ")
plt.title("遗传值走势图")
#plt.legend([' ','百位','十位','个位'])
savefig('遗传值走势图.jpg')
#制作工具栏
toolframe = tk.Frame(root, height=20, bg='white')
frame = tk.Frame(toolframe, bg='white')
btzft=ttk.Button(frame, text='0到9出现次数')
btzft.bind("",zft)
btzft.grid(row=0, column=0, padx=1, pady=1, sticky=tk.E)
btk=ttk.Button(frame, text='K线图')
btk.bind("",k)
btk.grid(row=0, column=1, padx=1, pady=1, sticky=tk.E)
btdx=ttk.Button(frame, text='大小走势')
btdx.bind("",dx)
btdx.grid(row=0, column=2, padx=1, pady=1, sticky=tk.E)
btjo=ttk.Button(frame, text='奇偶走势')
btjo.bind("",jo)
btjo.grid(row=0, column=3, padx=1, pady=1, sticky=tk.E)
btdxbl=ttk.Button(frame, text='大小比例')
btdxbl.bind("",dxbl)
btdxbl.grid(row=0, column=4, padx=1, pady=1, sticky=tk.E)
btdxbljj=ttk.Button(frame, text='大小比例精简')
btdxbljj.bind("",dxbljj)
btdxbljj.grid(row=0, column=5, padx=1, pady=1, sticky=tk.E)
btjobl=ttk.Button(frame, text='奇偶比例')
btjobl.bind("",jobl)
btjobl.grid(row=0, column=6, padx=1, pady=1, sticky=tk.E)
btjobljj=ttk.Button(frame, text='奇偶比例精简')
btjobljj.bind("",jobljj)
btjobljj.grid(row=0, column=7, padx=1, pady=1, sticky=tk.E)
btzh=ttk.Button(frame, text='质合走势')
btzh.bind("",zh)
btzh.grid(row=0, column=8, padx=1, pady=1, sticky=tk.E)
btzhbl=ttk.Button(frame, text='质合比例')
btzhbl.bind("",zhbl)
btzhbl.grid(row=0, column=9, padx=1, pady=1, sticky=tk.E)
btzhbljj=ttk.Button(frame, text='质合比例精简')
btzhbljj.bind("",zhbljj)
btzhbljj.grid(row=0, column=10, padx=1, pady=1, sticky=tk.E)
btz3z6=ttk.Button(frame, text='组选3组选6')
btz3z6.bind("",z3z6)
btz3z6.grid(row=0, column=11, padx=1, pady=1, sticky=tk.E)
bthz=ttk.Button(frame, text='和值')
bthz.bind("",hz)
bthz.grid(row=0, column=12, padx=1, pady=1, sticky=tk.E)
btac=ttk.Button(frame, text='ac值')
btac.bind("",ac)
btac.grid(row=0, column=13, padx=1, pady=1, sticky=tk.E)
btlh=ttk.Button(frame, text='连号')
btlh.bind("",lh)
btlh.grid(row=0, column=14, padx=1, pady=1, sticky=tk.E)
btycz=ttk.Button(frame, text='遗传值')
btycz.bind("",ycz)
btycz.grid(row=0, column=15, padx=1, pady=1, sticky=tk.E)
frame.pack(side=tk.LEFT)
toolframe.pack(fill=tk.X)
canvas = FigureCanvasTkAgg(f, master=root)
canvas.draw()
canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH,expand=tk.YES) # 上对齐,填充方式,随窗口大小调整而调整
#创建顶级菜单
menubar = Menu(root)
# for item in ['文件','编辑','视图','关于']:
# # add_command 添加菜单项
# menubar.add_command(label = item)
#下拉菜单
fmenu = Menu(menubar)
#for item in ['新建','打开','保存','另存为','退出']:
fmenu.add_command(label = '新建')
fmenu.add_command(label ='打开' )
fmenu.add_command(label = '保存')
fmenu.add_command(label = '另存为')
fmenu.add_command(label = '退出',command=root.destroy)
emenu = Menu(menubar)
for item in ['复制','粘贴','剪切']:
emenu.add_command(label = item)
vmenu = Menu(menubar)
#for item in ['默认视图','新式视图']:
vmenu.add_command(label = '0到9出现次数直方图',command=zft)#将figure显示在tkinter窗体上面
vmenu.add_command(label = 'K线图',command=k)
vmenu.add_command(label = '大小走势',command=dx)
vmenu.add_command(label = '奇偶走势',command=jo)
amenu = Menu(menubar)
for item in ['版权信息','其他说明']:
amenu.add_command(label = item)
menubar.add_cascade(label = "文件",menu = fmenu)
menubar.add_cascade(label = "编辑",menu = emenu)
menubar.add_cascade(label = "排列3",menu = vmenu)
menubar.add_cascade(label = "关于",menu = amenu)
#显示菜单
root['menu']= menubar
# root.config(menu=menubar)#将root根窗口的顶级菜单设置为menu
root.mainloop()
'''
#这是程序真正开始执行处,如果程序被直接执行了而不是被当作库调用,则运行main()函数
if __name__ == '__main__':
main()
'''