当前位置:网站首页>Matplotlib和tkinter学习笔记(一)
Matplotlib和tkinter学习笔记(一)
2022-06-11 21:52:00 【CHRN晨】
前言
1 关于 Matplotlib 模块
Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块。它利用了 Python 下的数值计算模块 Numeric 及 Numarray,克隆了许多 Matlab 中的函数, 用以帮助用户轻松地获得高质量的二维图形。Matplotlib 可以绘制多种形式的图形包括普通的线图,直方图,饼图,散点图以及误差线图等;可以比较方便的定制图形的各种属性比如图线的类型,颜色,粗细,字体的大小等;它能够很好地支持一部分 TeX 排版命令,可以比较美观地显示图形中的数学公式。Matplotlib 掌握起来也很容易,由于 Matplotlib 使用的大部分函数都与 Matlab 中对应的函数同名,且各种参数的含义,使用方法也一致,这就使得熟悉 Matlab 的用户使用起来感到得心应手。对那些不熟悉的 Matlab 的用户而言,这些函数的意义往往也是一目了然的,因此只要花很少的时间就可以掌握。
2.关于Tkinter模块
Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口.
绘图
代码里解释的很详尽。
import tkinter
import matplotlib as mt
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg,NavigationToolbar2Tk
#使用TKinter作为量化分析框架窗口
#用于显示正常中文标签
plt.rcParams['font.sans-serif']=['SimHei']
#用于正常显示负号
plt.rcParams['axes.unicode_minus'] = False
#选择Tkinter为图形输出后端
mt.use('Agg')
#设置fig绘图窗口,并在窗口中使用plt绘图
fig=plt.figure(1)
#建立Tkinter窗口
root=tkinter.Tk()
root.title="tkinter绘图"
df=pd.read_csv('d://anaconda3//拼多多.csv')#拼多多的股票数据
#设置子图位置
ax1=plt.subplot2grid((3,3),(0,0),colspan=3)
ax2=plt.subplot2grid((3,3),(1,0),colspan=3)
ax3=plt.subplot2grid((3,3),(1,2),rowspan=3)
ax4=plt.subplot2grid((3,3),(2,0))
ax5=plt.subplot2grid((3,3),(2,1))
ax1.plot(df['Close'],color='r')
ax2.plot(df['Open'],color='g')
ax3.plot(df['Volume'],color='b')
ax4.plot(df['Low'],color='k')
ax5.plot(df['High'],color='g')
#设置tkinter绘图区
canvas=FigureCanvasTkAgg(fig,master=root)
#绘制图形
canvas.draw()
#plt图形导航工具条
toolbar=NavigationToolbar2Tk(canvas,root)
#显示plt图形导航工具条,即在tkinter窗口中放置canvas并显示
canvas._tkcanvas.pack(side=tkinter.TOP,fill=tkinter.BOTH,expand=1)
#关窗口
plt.close()
#运行tkinter的mainloop()主循环命令
tkinter.mainloop()
结果如下图:
额~~~,不知道是什么原因,有一副图丢失了。
matplotlib的绘图流程:
tkinter的使用流程
import tkinter as tk
#创建主窗口
root=tk.Tk()
#创建控件
label=tk.Label(root,text='内容')
#把控件通过pack布局管理方法放到窗口中
label.pack()
#进入tkinter循环
root.mainloop()
**tkinter程序设计的思路:**一般来说,设计窗口或控制面板最好使用Frame.grid()方式,即在Frame中填充不同颜色进行调整,调整完成后在吧所需要的控件用pack()方法放置到Frame()容器中。
tkinter的变量类:主要用于设置tkinter控件,通过tkinter变量值动态实现改变tkinter控件的属性。
变量类有:基类Variable,其他派生类:StringVar,IntVar,DoubleVar,BooleanVar.
下面是变量的相关操作:
import tkinter as tk
#创建主窗口
root=tk.Tk()
root.title("变量演示")
#设置顶层窗口,覆盖其他窗口
root.attributes('-topmost',1)
#设置变量对象的值
var=tk.StringVar(root,value='测试\n')
root.update()
#修改操作
def callback1(*args):
x=args
print(x)
print('\n变量修改:'+var.get())
def callback2(*args):
print('\n变量修改2:'+var.get())
def callback3(*args):
x=args
print(x)
print('\n变量读取:'+var.get())
#创建变量跟踪
cw1=var.trace('w',callback1)
cw2=var.trace('w',callback2)
cr1=var.trace('r',callback3)
#修改变量
var.set(var.get()+'已修改')
#显示标签
label=tk.Label(root,textvariable=var).pack()
#打印全部信息
print(var.trace_vinfo())
print('删除cw2')
var.trace_vdelete('w',cw2)
#打印全部跟踪信息
print(var.trace_vinfo())
#进入tkinter循环
root.mainloop()

tkinter控件属性
1.Button 按钮。类似标签,但提供额外的功能,例如鼠标掠过、按下、释放以及键盘操作/事件
2.Canvas 画布。提供绘图功能(直线、椭圆、多边形、矩形) ;可以包含图形或位图
3.Checkbutton 选择按钮。一组方框,可以选择其中的任意个(类似 HTML 中的 checkbox)
4.Entry 文本框。单行文字域,用来收集键盘输入(类似 HTML 中的 text)
5.Frame 框架。包含其他组件的纯容器
6.Label 标签。用来显示文字或图片
7.Listbox 列表框。一个选项列表,用户可以从中选择
8.Menu 菜单。点下菜单按钮后弹出的一个选项列表,用户可以从中选择
9.Menubutton 菜单按钮。用来包含菜单的组件(有下拉式、层叠式等等)
10.Message 消息框。类似于标签,但可以显示多行文本
11.Radiobutton 单选按钮。一组按钮,其中只有一个可被“按下” (类似 HTML 中的 radio)
12.Scale 进度条。线性“滑块”组件,可设定起始值和结束值,会显示当前位置的精确值
13.Scrollbar 滚动条。对其支持的组件(文本域、画布、列表框、文本框)提供滚动功能
14.Text 文本域。 多行文字区域,可用来收集(或显示)用户输入的文字(类似 HTML 中的 textarea)
15.Toplevel 顶级。类似框架,但提供一个独立的窗口容器。
import time
import tkinter as tk
root=tk.Tk()
labels=[]
for color in ['blue','red','black']:
f=tk.Frame(root,borderwidth=1,bg='black')
label=tk.Label(f,text=color,width=10,fg=color,bg='yellow')
label.pack(side=tk.LEFT)
labels.append(label)
f.pack(side=tk.LEFT)
root.update()
time.sleep(7)
#部件的字典方式修改属性
labels[0]['fg']='green'
labels[0]['bg']='red'
labels[1]['fg']='blue'
labels[1]['bg']='yellow'
#使用config()修改多个属性
labels[2].config(fg='red',bg='blue')
root.mainloop()
改变之前的图
改变之后的图
控件的值和单位

总结
本文介绍了matplotlib库的一些基本的功能以及tkinter的使用流程,控件的属性,控件的属性的值和单位。
边栏推荐
- Superscalar processor design yaoyongbin Chapter 2 cache -- Excerpt from subsection 2.3
- Static PVC with CEPH CSI
- [academic related] under the application review system, how difficult is it to study for a doctoral degree in a double first-class university?
- 如何查看win系统的安装日期
- inner join执行计划变了
- 238. product of arrays other than itself
- R language book learning 03 "in simple terms R language data analysis" - Chapter 10 association rules Chapter 11 random forest
- R语言相关文章、文献整理合集(持续更新)
- 高考结束,人生才刚刚开始,10年职场老鸟给的建议
- 重温c语言一
猜你喜欢
随机推荐
揭秘爆款的小程序,为何一黑到底
【历史上的今天】6 月 11 日:蒙特卡罗方法的共同发明者出生;谷歌推出 Google 地球;谷歌收购 Waze
zypper命令使用示例
科普 | NFT的类型有哪些(上)
R language book learning 03 "in simple terms R language data analysis" - Chapter 10 association rules Chapter 11 random forest
Daily question - Roman numeral to integer
One question per day -- verifying palindrome string
2022-02-28(1)
go encoding包
Tkinter学习笔记(三)
All features of polymorphism
Take off efficiently! Can it be developed like this?
Two methods to judge the storage of large and small end
Servlet get form data
Example of using zypper command
5.学城项目 支付宝支付
win11怎么看电脑显卡信息
Three methods of quick sorting
MySQL事务简介
go io模块









