python Combobox的不同选项绑定不同的事件,怎么实现 。你好,Button1.bind(sequence='Button-1', func=trans1)的语法应该是Button1.bind'ComboboxSelected', handler),针对不同的选项绑定不同的事件 , 可以通过event分发来实现,下面是一个例子代码:
import tkinter as tk
from tkinter import ttk
values = ['mustang', 'focus', 'tesla']
def method_mustang():
label.configure(text="mustang selected")
def method_focus():
label.configure(text="focus selected")
def method_tesla():
label.configure(text="tesla selected")
def method_unknown():
label.configure(text="unknown selected")
def handler(event):
current = combobox.current()
value = https://www.04ip.com/post/values[current]
print("current:", current, "value:", value)
func_map = {
"mustang": method_mustang,
"focus": method_focus,
"tesla": method_tesla
}
func = func_map.get(value, method_unknown)
func()
root = tk.Tk()
combobox = ttk.Combobox(root, values=values)
combobox.bind('ComboboxSelected', handler)
label = ttk.Label(root, width=20)
combobox.pack(side="top", anchor="w")
label.pack(side="top", fill="x", pady=4)
root.mainloop()
Python如何图像识别?1. 简介 。
图像处理是一门应用非常广的技术,而拥有非常丰富第三方扩展库的 Python 当然不会错过这一门盛宴 。PIL (Python Imaging Library)是 Python 中最常用的图像处理库,目前版本为 1.1.7 , 我们可以 在这里 下载学习和查找资料 。
Image 类是 PIL 库中一个非常重要的类,通过这个类来创建实例可以有直接载入图像文件,读取处理过的图像和通过抓取的方法得到的图像这三种方法 。
2. 使用 。
导入 Image 模块 。然后通过 Image 类中的 open 方法即可载入一个图像文件 。如果载入文件失败,则会引起一个 IOError ;若无返回错误 , 则 open 函数返回一个 Image 对象 。现在,我们可以通过一些对象属性来检查文件内容,即:
1import Image
2im = Image.open("j.jpg")
3print im.format, im.size, im.mode
4 JPEG (440, 330) RGB
这里有三个属性 , 我们逐一了解 。
format : 识别图像的源格式,如果该文件不是从文件中读取的,则被置为 None 值 。
size : 返回的一个元组 , 有两个元素,其值为象素意义上的宽和高 。
mode : RGB(true color image),此外还有 , L(luminance),CMTK(pre-press image) 。
现在,我们可以使用一些在 Image 类中定义的方法来操作已读取的图像实例 。比如,显示最新载入的图像:
1 im.show()
2
输出原图:
3. 函数概貌 。
3.1Reading and Writing Images : open( infilename ) , save( outfilename )
3.2Cutting and Pasting and Merging Images :
crop() : 从图像中提取出某个矩形大小的图像 。它接收一个四元素的元组作为参数 , 各元素为(left, upper, right, lower),坐标系统的原点(0, 0)是左上角 。
paste() :
merge() :
1box = (100, 100, 200, 200)
2region = im.crop(box)
3region.show()
4region = region.transpose(Image.ROTATE_180)
5region.show()
6im.paste(region, box)
7im.show()
其效果图为:
旋转一幅图片:
1 def roll(image, delta):
2"Roll an image sideways"
3
4xsize, ysize = image.size
5
6delta = delta % xsize
7if delta == 0: return image
8
9part1 = image.crop((0, 0, delta, ysize))
10part2 = image.crop((delta, 0, xsize, ysize))
11image.paste(part2, (0, 0, xsize-delta, ysize))
12image.paste(part1, (xsize-delta, 0, xsize, ysize))
13
14return image
3.3几何变换 。
3.3.1简单的几何变换 。
1 out = im.resize((128, 128))#
2out = im.rotate(45)#逆时针旋转 45 度角 。
3out = im.transpose(Image.FLIP_LEFT_RIGHT)#左右对换 。
4out = im.transpose(Image.FLIP_TOP_BOTTOM)#上下对换 。
5out = im.transpose(Image.ROTATE_90)#旋转 90 度角 。
6out = im.transpose(Image.ROTATE_180)#旋转 180 度角 。
7 out = im.transpose(Image.ROTATE_270)#旋转 270 度角 。
各个调整之后的图像为:
图片1:
图片2:
图片3:
图片4:
3.3.2色彩空间变换 。
convert() : 该函数可以用来将图像转换为不同色彩模式 。
3.3.3图像增强 。
Filters : 在 ImageFilter 模块中可以使用 filter 函数来使用模块中一系列预定义的增强滤镜 。
1import ImageFilter
2imfilter = im.filter(ImageFilter.DETAIL)
3imfilter.show()
3.4序列图像 。
即我们常见到的动态图,最常见的后缀为 .gif ,另外还有 FLI / FLC。PIL 库对这种动画格式图也提供了一些基本的支持 。当我们打开这类图像文件时 , PIL 自动载入图像的第一帧 。我们可以使用 seek 和 tell 方法在各帧之间移动 。
1 import Image
2 im.seek(1)# skip to the second frame
3
4 try:
5while 1:
6im.seek( im.tell()1)
7# do something to im
8 except EOFError:
9pass
3.5更多关于图像文件的读取 。
最基本的方式:im = Image.open("filename")
类文件读?。篺p = open("filename", "rb"); im = Image.open(fp)
字符串数据读?。篿mport StringIO; im = Image.open(StringIO.StringIO(buffer))
从归档文件读?。篿mport TarIO; fp = TarIo.TarIO("Image.tar", "Image/test/lena.ppm"); im = Image.open(fp)
基本的 PIL 目前就练习到这里 。其他函数的功能可点击 这里 进一步阅读 。
python matplotlib箱线图参考链接:
箱线图,又称箱形图(boxplot)或盒式图,不同于一般的折线图、柱状图或饼图等传统图表,只是数据大小、占比、趋势等等的呈现,其包含一些统计学的均值、分位数、极值等等统计量,因此,该图信息量较大,不仅能够分析不同类别数据平均水平差异(需在箱线图中加入均值点),还能揭示数据间离散程度、异常值、分布差异等等 。
在python中常用matplotlib的boxplot来绘制,最简单绘制的如下:
importnumpyasnpimportmatplotlib.pyplotaspltimportpandasaspdnp.random.seed(2)#设置随机种子df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D'])#先生成0-1之间的5*4维度数据,再装入4列DataFrame中df.boxplot()#也可用plot.box()plt.show()
Paste_Image.png
从图形可以看出,A、B、C、D四组数A、D数据较集中(大部分在上下四分位箱体内) , 但都有异常值,C的离散程度最大(最大值与最小值之间距离),以均值为中心,B分布都有明显右偏(即较多的值分布在均值的右侧),A、C则有明显左偏 。
(2)
从分析的角度来说,上面boxplot最初始图形已经够用,但是在matplotlib库下boxplot函数中包含n多参数,涉及到对框的颜色及形状、线段线型、均值线、异常点的形状大小等等设置,由于大多并不常用,用了几个常用参数,作图如下:
df.boxplot(sym='r*',vert=False,patch_artist=True,meanline=False,showmeans=True)plt.show()
Paste_Image.png
其中 , sym='r*',表示异常点的形状,
vert=False,表示横向还是竖向(True),,
patch_artist=True,(上下四分位框内是否填充,True为填充)
meanline=False,showmeans=True , 是否有均值线及其形状,meanline=True时,均值线也像中位数线一样是条红色线段,这样容易与中位数线混淆 。
另外,还有其他参数 , 比如notch表示中间箱体是否缺口 , whis为设置数据的范围,showcaps、showbox是否显示边框,可以参见
,如该网页中图形:
Paste_Image.png
左上图是默认图形,中上、右上是显示均值点及形状,左下是是否显示箱体边框,中下是带缺口的箱体 , 右下是是否显示异常值 。
(3)
前边说过,很多参数使用很少,但对于图形来说,可能还能用到的就是美化 , 比如各条线的颜色,粗细程度等等 。这里可用for循环来构造 。
f=df.boxplot(sym='r*',patch_artist=True)forboxinf['boxes']:# 箱体边框颜色box.set( color='#7570b3', linewidth=2)# 箱体内部填充颜色box.set( facecolor ='#1b9e77')forwhiskerinf['whiskers']:whisker.set(color='r', linewidth=2)forcapinf['caps']:cap.set(color='g', linewidth=3)formedianinf['medians']:median.set(color='DarkBlue', linewidth=3)forflierinf['fliers']:flier.set(marker='o', color='y', alpha=0.5)plt.show()
Paste_Image.png
其中,boxes, 是25分位值和75分位值构成的box,
【关于python的box函数的信息】 medians, 是中位值的横线, 每个median是一个Line2D对象
whiskers, 是指从box 到error bar之间的竖线.
fliers, 是指error bar线之外的离散点.
caps, 是指error bar横线.
means, 是均值的横线,
(4)
还可以做子图 , 如我们在最开始的DataFrame数据中加入分类数据列:
df['E'] = np.random.choice(['X','Y'], size=20)#加入以X、Y随机分类的E列print(df)plt.figure()df.boxplot(by='E')plt.show()
Paste_Image.png
这样我们就可以比较,不同类别X、Y在同一列下的数据分布情况及其差异 。
链接:
来源:
关于python的box函数和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。
推荐阅读
- 钟表的html代码的简单介绍
- 微博轻享版怎么发视频号,新浪微博轻版
- 网红为什么晚上直播呢,网红为什么都停播了
- php文本数据库益事 php怎么将数据库中的数据显示出来
- oracle查sql执行计划,oracle 查询sql执行效率
- 什么叫视频号场景经营,短视频场景化营销
- linux定时命令脚本 linux定时执行脚本命令
- 有什么必看的电视电影,有什么必看的电视电影有哪些
- w7显卡怎么设置,win7ati显卡怎么设置