python tkinter grid 网格

Python045

python tkinter grid 网格,第1张

from tkinter import *

colors = ['red', 'green', 'orange', 'white', 'yellow', 'blue']

r = 0

for c in colors:

Label(text=c, relief=RIDGE, width=25).grid(row=r, column=0)

Entry(bg=c, relief=SUNKEN, width=50).grid(row=r, column=1)

r += 1

///sticky=NSEW,rowconfigure扩展

"add a label on the top and form resizing"

from tkinter import *

colors = ['red', 'white', 'blue']

def gridbox(root):

Label(root, text='Grid').grid(columnspan=2)

row = 1

for color in colors:

lab = Label(root, text=color, relief=RIDGE, width=25)

ent = Entry(root, bg=color, relief=SUNKEN, width=50)

lab.grid(row=row, column=0, sticky=NSEW)

ent.grid(row=row, column=1, sticky=NSEW)

root.rowconfigure(row, weight=1)

row += 1

root.columnconfigure(0, weight=1)

root.columnconfigure(1, weight=1)

def packbox(root):

Label(root, text='Pack').pack()

for color in colors:

row = Frame(root)

lab = Label(row, text=color, relief=RIDGE, width=25)

ent = Entry(row, bg=color, relief=SUNKEN, width=50)

row.pack(side=TOP, expand=YES, fill=BOTH)

lab.pack(side=LEFT, expand=YES, fill=BOTH)

ent.pack(side=RIGHT, expand=YES, fill=BOTH)

root = Tk()

gridbox(Toplevel(root))

packbox(Toplevel(root))

Button(root, text='Quit', command=root.quit).pack()

mainloop()

columnspan=2 跨两行 row column

print 函数是输出字符串,所以用 print 输出形成的 grid 其实质是具有某特定形状的 字符串 ,而 plt.grid() 绘制出的网格是 图片。

字符串 是可以用文字处理软件(如 word、记事本等)直接编辑处理的,而 图片 则只能用图片编辑软件(如画笔)打开处理。

如问题所要求的最简单的“编写一个能画出如下网格(grid)的函数”代码,可以简单的用 print 函数就可以了:

代码执行效果:

使用Python编程可以快速迁移代码并进行改动,无须花费过多的精力在修改代码与代码规范上。开发者在Python中封装了很多优秀的依赖库,可以直接拿来使用,常见的机器学习库如下:

1、Scikit-Learn

Scikit-Learn基于Numpy和Scipy,是专门为机器学习建造的一个Python模块,提供了大量用于数据挖掘和分析的工具,包括数据预处理、交叉验证、算法与可视化算法等一系列接口。

Scikit-Learn基本功能可分为六个部分:分类、回归、聚类、数据降维、模型选择、数据预处理。其中集成了大量分类、回归、聚类功能,包括支持向量机、逻辑回归、随机森林、朴素贝叶斯等。

2、Orange3

Orange3是一个基于组件的数据挖掘和机器学习软件套装,支持Python进行脚本开发。它包含一系列的数据可视化、检索、预处理和建模技术,具有一个良好的用户界面,同时也可以作为Python的一个模块使用。

用户可通过数据可视化进行数据分析,包含统计分布图、柱状图、散点图,以及更深层次的决策树、分层聚簇、热点图、MDS等,并可使用它自带的各类附加功能组件进行NLP、文本挖掘、构建网络分析等。

3、XGBoost

XGBoost是专注于梯度提升算法的机器学习函数库,因其优良的学习效果及高效的训练速度而获得广泛的关注。XGBoost支持并行处理,比起同样实现了梯度提升算法的Scikit-Learn库,其性能提升10倍以上。XGBoost可以处理回归、分类和排序等多种任务。

4、NuPIC

NuPIC是专注于时间序列的一个机器学习平台,其核心算法为HTM算法,相比于深度学习,其更为接近人类大脑的运行结构。HTM算法的理论依据主要是人脑中处理高级认知功能的新皮质部分的运行原理。NuPIC可用于预测以及异常检测,使用面非常广,仅要求输入时间序列即可。

5、Milk

Milk是Python中的一个机器学习工具包。Milk注重提升运行速度与降低内存占用,因此大部分对性能敏感的代码都是使用C++编写的,为了便利性在此基础上提供Python接口。重点提供监督分类方法,如SVMs、KNN、随机森林和决策树等。